題目:
給你二叉樹的根節點?root
?,返回其節點值的?層序遍歷?。 (即逐層地,從左到右訪問所有節點)。
方法:迭代
class Solution {public List<List<Integer>> levelOrder(TreeNode root) {if (root == null)return new ArrayList<List<Integer>>();List<List<Integer>> ans = new ArrayList<List<Integer>>();LinkedList<TreeNode> queue = new LinkedList<TreeNode>();queue.add(root);while (!queue.isEmpty()) {int n = queue.size();List<Integer> tmp = new ArrayList<Integer>();while (n-- > 0) { // 每次 while (!queue.isEmpty())循環要處理一層,需要變量n協助TreeNode node = queue.poll();tmp.add(node.val);if (node.left != null)queue.add(node.left);if (node.right != null)queue.add(node.right);}ans.add(tmp);}return ans;}
}