首页 > 其他 > 详细

按行打印二叉树结点值

时间:2020-05-27 12:40:42      阅读:36      评论:0      收藏:0      [点我收藏+]
    ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
        if(pRoot==null){
            return null;
        }
        ArrayList<ArrayList<Integer> > mutiLineList = new ArrayList<ArrayList<Integer> >();
        ArrayList<Integer> lineList = new  ArrayList<Integer>();
        lineList.add(pRoot.val);
        Queue<TreeNode> queque1 = new Queue<TreeNode>();//是接口还是class
        Queue<TreeNode> queque2 = new Queue<TreeNode>();
        queque1.add(pRoot);
        mutiLineList.add(lineList);
        while(!queque1.isEmpty()||!queque2.isEmpty()){
            while(!queque1.isEmpty()){
              ArrayList<Integer> lineList1 = new  ArrayList<Integer>();
              TreeNode treeNode1 = queque1.getFirst();
              lineList.add(treeNode1.val);
              if(treeNode1.left!=null){
                   queque2.add(treeNode1.left);
              }
              if(treeNode1.right!=null){
                  queque2.add(treeNode1.right);
              } 
            }
            mutiLineList.add(lineList1);
            while(!queque2.isEmpty()){
              ArrayList<Integer> lineList2 = new  ArrayList<Integer>();
              TreeNode treeNode2 = queque2.getFirst();
              lineList.add(treeNode2.val);
              if(treeNode2.left!=null){
                   queque1.add(treeNode2.left);
              }
              if(treeNode2.right!=null){
                  queque1.add(treeNode2.right);
              } 
            }
            mutiLineList.add(lineList2);
            
        } 
        return mutiLineList;
    
    }

 

按行打印二叉树结点值

原文:https://www.cnblogs.com/shijianchuzhenzhi/p/12971712.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!