zoukankan      html  css  js  c++  java
  • 剑指Offer--从上往下打印二叉树

    题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
    思路 二叉树的一种中序遍历
    我的Low代码

    import java.util.ArrayList;
    /**
    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
    
        public TreeNode(int val) {
            this.val = val;
    
        }
    
    }
    */
    
    public class Solution {
     
        ArrayList<TreeNode> cur = new ArrayList<TreeNode>();
     	ArrayList<TreeNode>  next = new ArrayList<TreeNode>();
    	 public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
    		 ArrayList<Integer> list = new ArrayList<Integer>();
    	        if(root==null) {
    	        	return list;
    	        }
    	        cur.add(root);
    	        list.add(root.val);
    	        layTraversal(list);
    	        return list;
    	        
    	    }
    	 private void layTraversal(ArrayList<Integer>list) {
         	
    		 while(!cur.isEmpty()) {
    			 for(TreeNode node:cur) {
    				 if(node.left!=null) {
    					 next.add(node.left);
    					 list.add(node.left.val);
    				 }
    				 if(node.right!=null) {
    					 next.add(node.right);
    					 list.add(node.right.val);
    				 }
    			 }
    			 cur.clear();
    			 cur.addAll(next);
    			 next.clear();
    		 }
    		 
    		
    		 
         }
    }
    
    多思考,多尝试。
  • 相关阅读:
    C语言 弹跳小球
    selenium 相关操作
    aiohttp 多任务异步协程
    39 数据库索引
    36 数据库 库表行增删改查 枚举 集合
    07 线程池回调函数
    06 gevent版真正的协程
    05 greenlet版协程
    03 线程池
    04 生成器版协程
  • 原文地址:https://www.cnblogs.com/LynnMin/p/9390228.html
Copyright © 2011-2022 走看看