zoukankan      html  css  js  c++  java
  • 62.把二叉树打印成多行

    题目描述:

      从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

    思路分析:

      每一层都从左到右输出,我们可以用队列保存层序遍历的节点,这道题的难点在于,如何判断每一层节点的数目,以达到按层输出的目标,我们可以定义两个变量,nownum,和nextnum,分别记录当前层的节点数,和下一层的节点数。当nownum减为0的时候表示当前层遍历完。

    代码:

    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 {
        ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
            ArrayList<ArrayList<Integer>>res=new ArrayList<>();
            ArrayList<Integer>list=new ArrayList<>();
            if(pRoot==null)
                return res;
            Queue<TreeNode>q=new LinkedList<>();
            int nownum=1;
            int nextnum=0;
            q.offer(pRoot);
            while(!q.isEmpty()){
                TreeNode pNode=q.poll();
                nownum--;
                list.add(pNode.val);
                if(pNode.left!=null){
                    q.offer(pNode.left);
                    nextnum++;
                }
                if(pNode.right!=null){
                    q.offer(pNode.right);
                    nextnum++;
                }
                if(nownum==0){
                    res.add(list);
                    list=new ArrayList<>();
                    nownum=nextnum;     //一层遍历完后更新nownum的值,将nextnum清空。
                    nextnum=0;
                }
            }
            return res;
        }
        
    }
    
  • 相关阅读:
    oracle 更改账户名密码
    mongodb 分片副本集搭建
    爬虫目录
    centos MySQL安装与卸载
    ANACONDA 安装
    chrome 安装
    linux pycharm 安装 idea
    linux 基本命令
    高数18讲 之极限与连续
    高数18讲 之基础知识
  • 原文地址:https://www.cnblogs.com/yjxyy/p/10961289.html
Copyright © 2011-2022 走看看