其他分享
首页 > 其他分享> > 剑指offer:59.按之字形顺序打印二叉树

剑指offer:59.按之字形顺序打印二叉树

作者:互联网

题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。

import java.util.*;

/*
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) {
        ArrayList<ArrayList<Integer>>ans=new ArrayList<>();
        Queue<TreeNode>q=new LinkedList<>();
        q.add(pRoot);
        boolean flag=false;
        while(!q.isEmpty()){
            ArrayList<Integer>list=new ArrayList<>();
            int count=q.size();
            while(count-->0){
                TreeNode node=q.poll();
                if(node==null)continue;
                list.add(node.val);
                q.add(node.left);
                q.add(node.right);
            }
            //每次颠倒实现Z字形添加结点
            if(flag)
                Collections.reverse(list);
            flag=!flag;
            if(q.size()!=0)ans.add(list);
        }
            return ans;
        }

        }

标签:node,之字形,TreeNode,val,flag,add,二叉树,59,public
来源: https://blog.csdn.net/waS_TransvolnoS/article/details/97611147