首页 > 其他 > 详细

剑指 Offer 32 - III. 从上到下打印二叉树 III

时间:2021-04-03 20:58:43      阅读:30      评论:0      收藏:0      [点我收藏+]

题目:

请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。

 

例如:
给定二叉树: [3,9,20,null,null,15,7],

    3
   /   9  20
    /     15   7

返回其层次遍历结果:

[
  [3],
  [20,9],
  [15,7]
]

 

提示:

  1. 节点总数 <= 1000

代码:

//实现偶数层,逆置节点,只要在插入时选择头插法。

 1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 class Solution {
11     List <List<Integer>> list=new ArrayList<>();
12     public List<List<Integer>> levelOrder(TreeNode root) {
13         fun(root,0);
14         return list;
15 
16     }
17 
18     public void fun(TreeNode root,int t){
19         if(root!=null){
20             if(t>=list.size()){
21                 list.add(new ArrayList());
22             }
23             if(t%2==0){
24                 list.get(t).add(root.val);
25             }else{
26                 list.get(t).add(0,root.val);
27             }           
28             fun(root.left,t+1);
29             fun(root.right,t+1);
30         }
31     }
32 }

技术分享图片

 

剑指 Offer 32 - III. 从上到下打印二叉树 III

原文:https://www.cnblogs.com/SEU-ZCY/p/14614220.html

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