107Binary Tree Level Order Traversal II
来源:互联网 发布:好听有内涵的名字知乎 编辑:程序博客网 时间:2024/04/20 09:53
题目链接:https://leetcode.com/problems/binary-tree-level-order-traversal-ii/
题目:
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).For example:Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7return its bottom-up level order traversal as:[ [15,7], [9,20], [3]]
解题思路:
层次遍历要用到队列结构。
1. 由于题目要求各层的元素要放在各层的 subList 中,所以在层次遍历时,遇到新一层的结点就创建一个新队列来存储它们(TreeNode)。
2. 当遍历它们下一层的子节点时,再将它们依次从队列中取出,把它们的值放入属于该层的 subList 中,形成该层的结点值列表。
3. 当 subList 存完该层所有结点的值后(即,存结点的队列为空时),将该 subList 放入最终的 res List 中。
我的代码实现与大神有些不同,但是运行时间是相同的,且我的代码更加短小精悍些~
但还是附上大神的参考链接:
http://blog.csdn.net/linhuanmars/article/details/23414711
代码实现:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public List<List<Integer>> levelOrderBottom(TreeNode root) { LinkedList<List<Integer>> res = new LinkedList(); if(root == null) return res; LinkedList<TreeNode> queueOld = new LinkedList(); queueOld.offer(root); while(!queueOld.isEmpty()) { List<Integer> subList = new ArrayList(); LinkedList<TreeNode> queueNew = new LinkedList(); while(!queueOld.isEmpty()) { TreeNode node = queueOld.remove(); if(node.left != null) queueNew.offer(node.left); if(node.right != null) queueNew.offer(node.right); subList.add(node.val); } queueOld = queueNew; res.addFirst(subList); } return res; }}
34 / 34 test cases passed.Status: AcceptedRuntime: 3 ms
0 0
- 107Binary Tree Level Order Traversal II
- 107Binary Tree Level Order Traversal II
- 107 Binary Tree Level Order Traversal II
- 107、Binary Tree Level Order Traversal II
- 107Binary Tree Level Order Traversal II
- 107-Binary Tree Level Order Traversal II
- #102 Binary Tree Level Order Traversal & #107 Binary Tree Level Order Traversal II
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- 解决firefox页面刷新后退,按钮禁用状态无法恢复
- SpringMVC响应结果的生成
- 1295: [SCOI2009]最长距离
- thinkphp 3.2 =》0625-2_ =>css/js /mages路径
- sublime 好用的插件
- 107Binary Tree Level Order Traversal II
- Stream API:有状态的转换
- Ceph Storange Cluster----配置
- 安装git
- 以太网为什么要限制最小帧长?
- 表单验证
- leetcode -- Rotate List -- 重点
- Unity3D-Unity Remote
- ActiveMQ 故障处理