zoukankan      html  css  js  c++  java
  • 【剑指offer】广度优先遍历二叉树

    问题:从上往下打印出二叉树的每个节点,同层节点从左至右打印。

    *思路:先用队列存放树的根结点。每次出队一个结点,将结点非空的左右孩子分别入队。重复此过程,直到队列为空。

     1 import java.util.ArrayList;
     2 /**
     3 public class TreeNode {
     4     int val = 0;
     5     TreeNode left = null;
     6     TreeNode right = null;
     7 
     8     public TreeNode(int val) {
     9         this.val = val;
    10 
    11     }
    12 
    13 }
    14 */
    15 
    16 
    17 public class Solution {
    18     
    19     public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
    20       ArrayList<TreeNode> queue = new ArrayList<TreeNode>();
    21       ArrayList<Integer> result = new ArrayList<Integer>();
    22       //非空处理
    23       if(root==null){ return result;}
    24     //初始化
    25       queue.add(root);
    26       result.add(root.val);
    27       while(!queue.isEmpty()){
    28         TreeNode node = queue.remove(0);
    29         TreeNode left = node.left;
    30         TreeNode right = node.right;
    31         if(left!=null){
    32             queue.add(left); 
    33             result.add(left.val);
    34         }
    35         if(right!=null){
    36             queue.add(right);
    37             result.add(right.val);
    38         }
    39       }
    40         return result;
    41     }
    42 }
  • 相关阅读:
    第九周PSP
    c++的继承方式
    matlab的应用
    beta发布的评论
    本周psp
    历年作品点评
    JSON解析数据
    每周工作量及代码统计(第七周)
    词频统计(WEB)版
    评论alpha发布
  • 原文地址:https://www.cnblogs.com/singular/p/10048952.html
Copyright © 2011-2022 走看看