ZigZag打印二叉树
来源:互联网 发布:计算机网络原理 知乎 编辑:程序博客网 时间:2024/05/01 04:35
问题:
给定二叉树,ZigZag打印每一层的节点,如果上一层是从左到右,下一层就是从右到左。
分析:
本题和分层打印二叉树是一样的,我们只需要判断上一层的顺序,就可以判断该层的顺序。
代码:
public static void printZigZag(Node node) {ArrayList<Node> list1 = new ArrayList<Node>();ArrayList<Node> list2 = new ArrayList<Node>();boolean rightToLeft = false;list1.add(node);while(list1.size() != 0) {if (rightToLeft == true) {for (int i = list1.size() - 1; i >= 0 ; i--) {System.out.print(list1.get(i).value + " ");}rightToLeft = false;} else {for (int i = 0; i < list1.size(); i++) {System.out.print(list1.get(i).value + " ");}rightToLeft = true;}for (int i = 0; i < list1.size(); i++) {if (list1.get(i).leftChild != null) list2.add(list1.get(i).leftChild);if (list1.get(i).rightChild != null) list2.add(list1.get(i).rightChild);} System.out.println();list1.clear();ArrayList<Node> temp = list1;list1 = list2;list2 = temp;}}
class Node { Node leftChild = null; Node rightChild = null; String name; Node(String name) { this.name = name; }}转载请注明出处:http://blog.csdn.net/beiyetengqing/
- ZigZag打印二叉树
- Binary Tree Zigzag Level Order Traversal 二叉树ZigZag打印
- 二叉树的按层打印和ZigZag打印
- 二叉树的按层打印与ZigZag打印
- 二叉树问题---二叉树的按层打印和ZigZag打印
- 把二叉树打印成多行 按之字形顺序打印二叉树 binary tree zigzag level order traversal
- leetcode解题之103. Binary Tree Zigzag Level Order Traversal java版(之字形打印二叉树)
- LeetCode基础--二叉树--ZigZag遍历
- 【二叉树】二叉树打印
- 打印zigzag矩阵
- 打印zigzag数组
- 分层打印二叉树
- 分层打印二叉树
- 横向打印二叉树
- 用凹入表打印二叉树
- 完美打印二叉树
- 逐行打印二叉树
- 之字形打印二叉树
- xp怎么修改桌面图标?
- 从字符串中取颜色
- 查找算法整理之索引查找
- 求最长不增子序列、最长单调递减子序列、最长不降子序列、最长单调递增子序列长度
- VC6.0查看汇编代码
- ZigZag打印二叉树
- 常见的几种RuntimeException-
- 怎么截桌面的背景
- android--服务程序的例子
- mysql的重装
- 模板方法模式
- 1KB病毒
- Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '
- RuntimeException实例