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] ]
confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
LinkedList<TreeNode> stack=new LinkedList<TreeNode>();
LinkedList<TreeNode> curr=new LinkedList<TreeNode>();
List<List<Integer>> res=new ArrayList< List<Integer> >();
if(root==null) return res;
stack.add(root);
while(!stack.isEmpty()){
curr=stack;
stack=new LinkedList<TreeNode>();
List<Integer> a=new LinkedList<Integer>();
while(curr.size()>0){
TreeNode tmpNode=curr.peekFirst();
if(tmpNode.left!=null) stack.add(tmpNode.left);
if(tmpNode.right!=null) stack.add(tmpNode.right);
a.add(tmpNode.val);
curr.poll();
}
res.add(a);
}
return res;
}
}
本文详细介绍了如何实现二叉树的层次遍历,包括使用队列进行层次遍历的算法步骤和代码实现。
1312

被折叠的 条评论
为什么被折叠?



