標籤:
Given a binary tree, return the level order traversal of its nodes‘ values. (ie, from left to right, level by level).
For example:
Given binary tree {3,9,20,#,#,15,7},
3 / 9 20 / 15 7
return its level order traversal as:
[ [3], [9,20], [15,7]]
解題思路:
前序走訪(BFS),使用一個Queue儲存每層元素即可,JAVA實現如下:
public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> list = new ArrayList<List<Integer>>();if (root == null)return list;Queue<TreeNode> queue = new LinkedList<TreeNode>();queue.add(root);while (queue.size() != 0) {List<Integer> alist = new ArrayList<Integer>();for (TreeNode child : queue)alist.add(child.val);list.add(new ArrayList<Integer>(alist));Queue<TreeNode> queue2=queue;queue=new LinkedList<TreeNode>();for(TreeNode child:queue2){if (child.left != null)queue.add(child.left);if (child.right != null)queue.add(child.right);}}return list; }
Java for LeetCode 102 Binary Tree Level Order Traversal