leetcode解题之107 # Binary Tree Level Order Traversal II Java版
来源:互联网 发布:开淘宝店需要什么资料 编辑:程序博客网 时间:2024/06/01 09:52
107. 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,null,null,15,7],
3
/ \
9 20
/ \
15 7
return its bottom-up level order traversal as:
[
[15,7],
[9,20],
[3]
]
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,null,null,15,7],
3
/ \
9 20
/ \
15 7
return its bottom-up level order traversal as:
[
[15,7],
[9,20],
[3]
]
运用广度优先搜索方法,运用队列的方法,每次遍历一层的叶节点,并把下一层的叶节点加入到队列中。
每次遍历一层节点结束时候,将该层节点组成的list放到整体的list之前,实现由底到高的排列。
//树节点定义public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}}
public List<List<Integer>> levelOrderBottom(TreeNode root) {List<List<Integer>> list = new LinkedList<List<Integer>>();Queue<TreeNode> queue = new LinkedList<TreeNode>();if (root == null)return list;queue.offer(root);while (!queue.isEmpty()) {int num = queue.size();List<Integer> levelList = new LinkedList<Integer>();for (int i = 0; i < num; i++) {TreeNode node = queue.peek();if (node.left != null)queue.offer(node.left);if (node.right != null)queue.offer(node.right);levelList.add(queue.poll().val);}// 在链表开始处插入list.add(0, levelList);}return list;}
补充:
/* queue方法补充: add 增加一个元索。 如果队列已满,则抛出一个IIIegaISlabEepeplian异常 remove 移除并返回队列头部的元素。如果队列为空,则抛出一个NoSuchElementException异常 element 返回队列头部的元素。 如果队列为空,则抛出一个NoSuchElementException异常 offer 添加一个元素并返回true。 如果队列已满,则返回false poll 移除并返问队列头部的元素 。如果队列为空,则返回null peek 返回队列头部的元素。 如果队列为空,则返回null put 添加一个元素。 如果队列满,则阻塞 take 移除并返回队列头部的元素。 如果队列为空,则阻塞 remove、element、offer 、poll、peek 其实是属于Queue接口*/
0 0
- leetcode解题之107 # Binary Tree Level Order Traversal II Java版
- LeetCode(107) Binary Tree Level Order Traversal II解题报告
- LeetCode---Binary Tree Level Order Traversal、Binary Tree Level Order Traversal II解题分析
- [leetcode-107]Binary Tree Level Order Traversal II(java)
- LeetCode 107 : Binary Tree Level Order Traversal II (Java)
- [LeetCode]Binary Tree Level Order Traversal II,解题报告
- 【LeetCode】Binary Tree Level Order Traversal II 解题报告
- [leetcode] 107. Binary Tree Level Order Traversal II 解题报告
- 【LeetCode】107. Binary Tree Level Order Traversal II 解题报告
- [Leetcode] 107. Binary Tree Level Order Traversal II 解题报告
- leetCode解题报告之Binary Tree Level Order Traversal II,I(二叉树层次遍历)
- leetcode 之Binary Tree Level Order Traversal I和II 解题思路
- [leetcode]107. Binary Tree Level Order Traversal II@Java解题报告
- [leetcode]102. Binary Tree Level Order Traversal@Java解题报告
- 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
- C++11之std--future和std--promise
- Exam CodeForces
- 不能声明为虚函数的函数:
- 理解GC日志
- 课堂知识整理
- leetcode解题之107 # Binary Tree Level Order Traversal II Java版
- Java中类加载的时机
- Codeforces 276D Little Girl and Maximum XOR 贪心+构造
- bzoj1066: [SCOI2007]蜥蜴
- 基于Cocopods的模块化管理实现
- 蓝桥杯-凑算式
- linux里面的简单命令
- 权限管理系统
- POJ 2246 Matrix Chain Multiplication 栈