题解 | #按之字形顺序打印二叉树#

按之字形顺序打印二叉树

https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0

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 root) {
        //保存总遍历结果
        ArrayList<ArrayList<Integer>>lists = new ArrayList<>();
        if(root==null){
            return lists;   
        }
	  //利用先进先出特性来遍历每层元素
        Queue<TreeNode> queue = new ArrayDeque<>();
	  //用来反转偶数行的元素
        Stack<Integer> stack = new Stack<>();
	  //入队根节点
        queue.add(root);
	  //用来标记哪层进行反转
        int num = 1;
        while (!queue.isEmpty()) {
            //每次清空栈
            stack.clear();
            //将每层元素添加到row集合
            ArrayList<Integer> row = new ArrayList<>();
            int size = queue.size();
		  //遍历每层
            for (int i = 0; i < size; i++) {
                TreeNode cur = queue.poll();
                row.add(cur.val);
                if (cur.left != null) {
                    queue.add(cur.left);
                }
                if (cur.right != null) {
                    queue.add(cur.right);
                }
            }
            //偶数层逆转
            if (num % 2 == 0) {
			  //将偶数层元素入栈
                int rowSize = row.size();
                for (int i = 0; i < rowSize; i++) {
                    stack.add(row.get(i));
                }
			  //清空偶数层
                row.clear();
			  //出栈并入集合
                while (!stack.isEmpty()) {
                    row.add(stack.pop());
                }
            }
            num++;
            lists.add(row);
        }


        return lists;
    }

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 19:30
化身华黑&nbsp;今天询问对接人审批情况,结果被告知没HC了&nbsp;云计算&nbsp;
苦闷的柠檬精allin实习:主管面结束后hr每周保温一次,结果前几天和我说没hc了,我也化身华黑子了
投递华为等公司8个岗位 > 华为求职进展汇总
点赞 评论 收藏
分享
球Offer上岸👑:可能是大环境太差了 太卷了 学历也很重要 hc也不是很多 所以很难
点赞 评论 收藏
分享
ResourceUtilization:四六级不愧是大学最有用的证之一
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务