-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBinaryTreeLevelOrderTraversal02.java
59 lines (58 loc) · 1.29 KB
/
BinaryTreeLevelOrderTraversal02.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/**
* 题目:本题在上一个题目的基础上,要求输出的结果是倒序的。
* 例如:
* 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]
* ]
* 解题思路:
* 与上面的题目思路一样,同样是层次遍历,只是最后的存储方式不一样而已
*
*/
import java.util.ArrayList;
import java.util.ArrayDeque;
import java.util.Collections;
public class BinaryTreeLevelOrderTraversal02 {
}
class TreeNode04
{
int val;
TreeNode04 left;
TreeNode04 right;
TreeNode04(int x){val=x;}
}
class Solution116
{
public ArrayList<ArrayList<Integer>> levelOrderBottom(TreeNode root)
{
ArrayList<ArrayList<Integer>> result=new ArrayList<ArrayList<Integer>>();
if(root==null) return result;
ArrayDeque<TreeNode> Q=new ArrayDeque<TreeNode>();
Q.add(root);
TreeNode temp;
while(!Q.isEmpty())
{
ArrayList<Integer> curLevel=new ArrayList<Integer>();
int Size=Q.size();
for(int i=0;i<Size;i++)
{
temp=Q.peek();
curLevel.add(temp.val);
Q.poll();
if(temp.left!=null) Q.add(temp.left);
if(temp.right!=null) Q.add(temp.right);
}
result.add(curLevel);
}
Collections.reverse(result);
return result;
}
}