22从上往下打印二叉树

Posted fankongkong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了22从上往下打印二叉树相关的知识,希望对你有一定的参考价值。

一、题目

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

二、解法

 1 import java.util.ArrayList;
 2 import java.util.LinkedList;
 3 import java.util.Queue;
 4 /**
 5 public class TreeNode {
 6     int val = 0;
 7     TreeNode left = null;
 8     TreeNode right = null;
 9 
10     public TreeNode(int val) {
11         this.val = val;
12 
13     }
14 
15 }
16 */
17 public class Solution {
18   public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
19          /*ArrayList<Integer> ls = new ArrayList<Integer>();
20          if(root == null)
21              return ls;
22          Queue<TreeNode> queue = new LinkedList<TreeNode>();
23          queue.offer(root);//入队
24          while(!queue.isEmpty()){
25              TreeNode tn = queue.poll();//出对
26              ls.add(tn.val);//保存值
27              if(tn.left != null)
28                  queue.offer(tn.left);//入队
29              if(tn.right != null)
30                  queue.offer(tn.right);//出对
31          }
32          return ls;*/
33       ArrayList<Integer> al = new ArrayList<Integer>();
34       if(root == null)
35             return al;
36         Queue<TreeNode> tn = new LinkedList<TreeNode>();
37         tn.offer(root);
38         while(!tn.isEmpty()){
39             TreeNode tree = tn.poll();
40             al.add(tree.val);
41             if(tree.left != null)
42                 tn.offer(tree.left);
43             if(tree.right != null)
44                 tn.offer(tree.right);
45         }
46         return al;    
47       }
48 }

 

以上是关于22从上往下打印二叉树的主要内容,如果未能解决你的问题,请参考以下文章

22从上往下打印二叉树

22. 从上往下打印二叉树

剑指Offer 22. 从上往下打印二叉树 (二叉树)

剑指offer-从上往下打印二叉树22

剑指offer22 从上往下打印二叉树

剑指Offer22从上往下打印二叉树