java广度搜索
java广度搜索
之字型打印二叉树
错误代码
import java.util.ArrayList;
import java.util.Stack;
import java.util.Collections;
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
//使用队列去实现
//分奇偶去实现
Stack<TreeNode> stack1=new Stack<TreeNode>();
Stack<TreeNode> stack4=new Stack<TreeNode>();
ArrayList<ArrayList<Integer> > res= new ArrayList<ArrayList<Integer> >();
ArrayList<Integer> member1 = new ArrayList<Integer>();
stack1.push(pRoot);
member1.add(pRoot.val);
res.add(member1);
while(stack1.isEmpty()!=true)
{
ArrayList<Integer> member2 = new ArrayList<Integer>();
Stack<TreeNode> stack3=new Stack<TreeNode>();
stack3=stack1;
TreeNode a=stack1.pop();
stack4.push(pRoot.right);
stack4.push(pRoot.left);
//添加list
while(stack1.isEmpty()==true)
{
stack1=stack4;
}
while(stack4.isEmpty()!=true)
{
TreeNode c=stack4.pop();
int b=c.val;
member2.add(b);
stack3.push(c);
}
if(stack4.isEmpty()==true)
{
Collections.reverse(member2);
res.add(member2);
}
while(stack3.isEmpty()!=true)
{
stack1.push(stack3.pop());
}
}
return res;
}
}