SpiralOrderTraverse,螺旋遍历二叉树,利用两个栈
2016-06-28 20:52
253 查看
问题描述:s型遍历二叉树,或者反s型遍历二叉树
算法分析:层序遍历二叉树只需要一个队列,因为每一层都是从左往右遍历,而s型遍历二叉树就要用两个栈了,因为每次方向相反。
算法分析:层序遍历二叉树只需要一个队列,因为每一层都是从左往右遍历,而s型遍历二叉树就要用两个栈了,因为每次方向相反。
public static void SpiralOrderTraverse(TreeNode t) { Stack<TreeNode> stack1 = new Stack<>(); Stack<TreeNode> stack2 = new Stack<>(); stack1.push(t); while (!stack1.isEmpty() || !stack2.isEmpty()) { while (!stack1.isEmpty()) { TreeNode tn = stack1.pop(); System.out.print(tn.val + " "); if (tn.right != null) { stack2.push(tn.right); } if (tn.left != null) { stack2.push(tn.left); } } while (!stack2.isEmpty()) { TreeNode tn = stack2.pop(); System.out.print(tn.val + " "); if (tn.left != null) { stack1.push(tn.left); } if (tn.right != null) { stack1.push(tn.right); } } } }
相关文章推荐
- BBC-unit7 session1
- 字符串分割,以及字符串匹配
- Visual Studio属性配置中使用宏
- out.println()和<%=%>那种输出方式更好?
- okHttp post&get请求
- Javassist library is missing in classpath! Please add missed dependency!
- android 实现截取 内容超过屏幕大小的长图
- windows7系统上查找大于指定大小的文件
- css position属性
- Linux系统安装 OpenSSL两种方法
- 列式存储和行式存储的区别
- Quartz教程五:SimpleTrigger
- python docx库使用样例
- 5528Count a b
- 组合数的一些性质
- 线上MySQL备份脚本
- org/apache/hadoop/hbase/CompatibilityFactory(scan)没有找到类的解决办法
- 下拉选择菜单封装
- 网络库研究路径
- leetcode 28: Merge Intervals