栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JZ32变形~剑指 Offer 32 - II. 从上到下打印二叉树 II

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JZ32变形~剑指 Offer 32 - II. 从上到下打印二叉树 II

放假不学习/上班,学习不放假。放假当然是不能学习或工作啦。所以只能工作期间认真工作了~ 力扣这个狗东西,竟然还有题目变形。我不想做,嘤嘤嘤,但是我开启了他的刷题,就不想停下来。

变形

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。

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

    3

   / 
  9  20
    /  
   15   7

返回其层次遍历结果:

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

思路

他变形的目的是为了分层输出,那分层自然是用隔板隔开,运行大概是这样的(因为我实在想不出怎么用静态的语言描述,所以画了图)

代码

package ForteenDay;

import java.util.ArrayList;
import java.util.List;

import elevDay.JZ32;
import elevDay.TreeNode;

public class Of32 {
	public List> levelOrder(TreeNode root) {
		ArrayList> l1 = new ArrayList>();
        ArrayList> l2 = new ArrayList>();
        //如果头节点不为空
        if (root!=null) {
        	List list = new ArrayList();
        	list.add(root);
        	l1.add(list);
		}
        //若头结点列表不为空
        while(l1.size()>0) {
            //当前节点层不为空
        	List list = new ArrayList();
        	//弹出的节点加入最终列表
        	List list2 = new ArrayList();
        	while (l1.get(0).size()>0) {
        		 if (l1.get(0).get(0).left!=null) {
             		list.add(l1.get(0).get(0).left);
     			}
                 if(l1.get(0).get(0).right!=null) {
                 	list.add(l1.get(0).get(0).right);
                 }
                 list2.add(l1.get(0).get(0).val);
                 l1.get(0).remove(0);
			}
        	if (list2.size()>0) {
        		l2.add(list2);
			}
            if (list.size()>0) {
            	l1.add(list);
			}
            l1.remove(0);
        }
        return l2;
    }
	public static void main(String[] args) {
		TreeNode node1 = new TreeNode(8);
		TreeNode node2 = new TreeNode(6);
		TreeNode node3 = new TreeNode(10);
		TreeNode node4 = new TreeNode(2);
		TreeNode node5 = new TreeNode(1);
		node1.left = node2;
		node1.right = node3;
		node3.left = node4;
		node3.right = node5;
		Of32 of32 = new Of32();
		of32.levelOrder(node1);
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/697001.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号