按之字形顺序打印二叉树

public ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) {
    ArrayList<ArrayList<Integer>> res = new ArrayList<>();
    if(pRoot==null){
        return res;
    }

    //queue 存储的是每一行的结点
    Queue<TreeNode> queue = new LinkedList<>();
    queue.add(pRoot);

    int level = 0;

    while(!queue.isEmpty()){
        if(level==res.size()){
            res.add(new ArrayList<>());
        }
        int num = queue.size();
        while(num-->0) {
            TreeNode node = queue.poll();
            res.get(level).add(node.val);
            if(node.left!=null){
                queue.add(node.left);
            }
            if(node.right!=null){
                queue.add(node.right);
            }
        }
        if(level%2==1){
            Collections.reverse(res.get(level));
        }
        level++;
    }

    return res;
}

https://www.mianshi.onlinehttps://www.i9code.cn

本文由博客一文多发平台 OpenWrite 发布!

逃跑的眼镜_bvbEK5
7 声望0 粉丝