标签:res solution treenode port print bsp 语言 null private
题目描述:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
实现语言:Java
import java.util.ArrayList;
import java.util.LinkedList;
/*
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 root) {
ArrayList<ArrayList<Integer>> res=new ArrayList<ArrayList<Integer>>();
if(root==null){
return res;
}
ArrayList<Integer> list=new ArrayList<Integer>();
LinkedList<TreeNode> que=new LinkedList<TreeNode>();
que.offer(root);
int curNode=1;
boolean leftToRight=true;
while(!que.isEmpty()){
root=que.poll();
--curNode;
if(root.left!=null){
que.offer(root.left);
}
if(root.right!=null){
que.offer(root.right);
}
list.add(root.val);
if(curNode==0){
curNode=que.size();
if(leftToRight){
res.add(list);
}else{
res.add(reverseList(list));
}
leftToRight=!leftToRight;
list=new ArrayList<Integer>();
}
}
return res;
}
private ArrayList<Integer> reverseList(ArrayList<Integer> list){
int len=list.size();
ArrayList<Integer> res=new ArrayList<Integer>();
for(int i=len-1;i>=0;--i){
res.add(list.get(i));
}
return res;
}
}
标签:res solution treenode port print bsp 语言 null private
原文地址:https://www.cnblogs.com/xidian2014/p/10201715.html