代码如下
import java.util.ArrayList;
import java.util.Stack;
public class Solution {
public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
Stack<TreeNode> s1 = new Stack<>();
Stack<TreeNode> s2 = new Stack<>();
ArrayList< ArrayList<Integer> > ans = new ArrayList<>();
if(pRoot == null)
return ans;
s1.push(pRoot);
while( !s1.empty() || !s2.empty() ){
ArrayList<Integer> temp = new ArrayList<>();
if(s2.empty())
while(!s1.empty()){
TreeNode top = s1.pop();
temp.add(top.val);
if(top.left != null)
s2.push(top.left);
if(top.right != null)
s2.push(top.right);
}
else
while(!s2.empty()){
TreeNode top = s2.pop();
temp.add(top.val);
if(top.right != null)
s1.push(top.right);
if(top.left != null)
s1.push(top.left);
}
ans.add(temp);
}
return ans;
}
}