Binary Tree Level Order Traversal

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]
]
思路:采用队列记录上一层结点,然后通过遍历该队列,生成下一层结点的集合。
</pre>/**<br /> * Definition for a binary tree node.<br /> * public class TreeNode {<br /> *     int val;<br /> *     TreeNode left;<br /> *     TreeNode right;<br /> *     TreeNode(int x) { val = x; }<br /> * }<br /> */<br />public class Solution {<br />    public List<List<Integer>> levelOrder(TreeNode root) {<br />        <br />        List<List<Integer>> res=new ArrayList<List<Integer>>();<br />        if(root==null) return res;<br />        List<TreeNode> last=new ArrayList<TreeNode>();<br />        last.add(root);<br />       // List<Integer> rl=new ArrayList<Integer>();<br />        //rl.add(root.val);<br />       // res.add(rl);<br />        while(!last.isEmpty())<br />        {<br />            List<Integer> cur=new ArrayList<Integer>();<br />            List<TreeNode> cur_Deque=new ArrayList<TreeNode>();<br />            for(TreeNode node: last)<br />            {<br />                cur.add(node.val);<br />            }<br />            for(TreeNode node: last){<br />                if(node.left!=null ) {<br />                    cur_Deque.add(node.left);<br />                }<br />                if(node.right!=null){<br />                    cur_Deque.add(node.right);<br />                } <br />            }<br />            last=new ArrayList<TreeNode>(cur_Deque);<br />            res.add(cur);<br />        }<br />        return res;<br />    }<br />}<br />
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值