按Z字形打印二叉树
来源:互联网 发布:荣威rx5改装矩阵式大灯 编辑:程序博客网 时间:2024/05/18 01:06
按照广度遍历去处理二叉树,但是对于每一层,设置一个布尔变量,来处理是否从右到左打印。
//如果为空节点,返回空的集合 if(pRoot == null) return new ArrayList<ArrayList<Integer>>(); //初始化一个双层链表 ArrayList<ArrayList<TreeNode>> list = new ArrayList<ArrayList<TreeNode>>(); ArrayList<TreeNode> listFloor = new ArrayList<TreeNode>();//每一层 listFloor.add(pRoot);//从左至右广度遍历 list.add(listFloor); boolean leftToRight = true;//从右到左 while(listFloor.size() != 0) { ArrayList<TreeNode> listNextFloor = new ArrayList<TreeNode>();//Z型遍历 for(TreeNode treeNode : listFloor) { if(treeNode.left != null) { listNextFloor.add(treeNode.left); } if(treeNode.right != null) { listNextFloor.add(treeNode.right); } } if(listNextFloor.size() != 0) { //颠倒顺序 if(leftToRight) { ArrayList<TreeNode> leftToRightList = new ArrayList<TreeNode>(); for(int i = listNextFloor.size() - 1;i >= 0;i --) { leftToRightList.add(listNextFloor.get(i)); } leftToRight = false; list.add(leftToRightList); } else { leftToRight = true; list.add(listNextFloor); } } listFloor = listNextFloor; } //将list里的值取出来 ArrayList<ArrayList<Integer>> treeNodeValList = new ArrayList<ArrayList<Integer>>(); for(ArrayList<TreeNode> treeList : list) { ArrayList<Integer> IntegerList = new ArrayList<Integer>(); for(TreeNode treeNode : treeList) { IntegerList.add(treeNode.val); } treeNodeValList.add(IntegerList); } return treeNodeValList;
0 0
- 按Z字形打印二叉树
- 剑指offer — z字形二叉树
- 北京hulu笔试,按Z字形打印矩阵
- Z字型打印二叉树
- 树——按“之”字形打印二叉树(层序遍历变型)
- 【CCF】Z字扫描 与 Z字形打印矩阵
- 【LeetCode笔记】Binary Tree Zigzag Level Order Traversal 二叉树Z字形遍历
- (二叉树z字形层次遍历)LeetCode#103. Binary Tree Zigzag Level Order Traversal
- MATLAB实现按Z字形编码矩阵
- leetCode 103.Binary Tree Zigzag Level Order Traversal (二叉树Z字形水平序) 解题思路和方法
- 【LeetCode-面试算法经典-Java实现】【103-Binary Tree Zigzag Level Order Traversal(二叉树分层Z字形遍历)】
- Z字形编排
- Z字形扫描
- z字形矩阵输出
- 【CCF】Z字形扫描
- z字形扫描
- Z字形扫描
- ccf Z字形扫描
- 九九乘法表
- 二叉树的深度
- Android SlidingTabLayout定制分割线和指示条颜色
- linux rcu 理解
- 第四周—项目1 建立单链表
- 按Z字形打印二叉树
- C# 修饰符的总结
- SQL数据库面试题以及答案
- SPMF源码学习与总结——Apriori算法
- matlab输入参数选择的代码参考
- 如何在mac book 上安装Android studio 开发工具
- LinearLayout中的android:layout_weight属性的设置和使用
- mysql服务器调优思路
- Linux下的socket编程实践(二)socket编程基本API简介