package com.leetcode.problem;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
/**
* @author pxu
* @create 2020-04-28 22:33
*/
public class Problem107 {
public static void main(String[] args) {
Problem107 p107 = new Problem107();
System.out.println(p107.levelOrder(TreeNode.ProdeuceBianryTRee()));
}
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> resReverse = new ArrayList<>();
Stack<List<Integer>> stack = new Stack<>();
if(root == null)
return resReverse;
ArrayList<TreeNode> cur = new ArrayList<>();
ArrayList<TreeNode> next = new ArrayList<>();
cur.add(root);
while (!cur.isEmpty())
{
ArrayList<Integer> element = new ArrayList<>();
for (TreeNode node : cur) {
element.add(node.val);
if(node.left != null)
next.add(node.left);
if(node.right != null)
next.add(node.right);
}
resReverse.add(element);
ArrayList tmp = cur;
cur = next;
next = tmp;
next.clear();
}
List<List<Integer>> res = new ArrayList<>();
for (int i = resReverse.size()-1; i >=0; i--) {
res.add(resReverse.get(i));
}
return res;
}
}
来源:oschina
链接:https://my.oschina.net/u/4489002/blog/4257333