按之字形数据打印二叉树
来源:互联网 发布:php 常用的魔术方法 编辑:程序博客网 时间:2024/06/05 22:52
题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
具体代码如下:
import java.util.ArrayList;import java.util.Stack;/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { ArrayList<ArrayList<Integer>> aList=new ArrayList<ArrayList<Integer>>(); if(pRoot==null) return aList; Stack<TreeNode> s1=new Stack<TreeNode>(); s1.add(pRoot); Stack<TreeNode> s2=new Stack<TreeNode>(); while(!s1.isEmpty()||!s2.isEmpty()){ if(!s1.isEmpty()){ ArrayList<Integer> aList2=new ArrayList<Integer>(); while(!s1.isEmpty()){ TreeNode p=s1.pop(); aList2.add(p.val); if(p.left!=null) s2.add(p.left); if(p.right!=null) s2.add(p.right); } aList.add(aList2); } else { ArrayList<Integer> aList2=new ArrayList<Integer>(); while(!s2.isEmpty()){ TreeNode p=s2.pop(); if(p.right!=null) s1.add(p.right); if(p.left!=null) s1.add(p.left); aList2.add(p.val); } aList.add(aList2); } } return aList; }}
阅读全文
0 0
- 按之字形数据打印二叉树
- 按之字形打印二叉树
- 按之字形打印二叉树
- 按之字形打印二叉树
- 之字形打印二叉树
- 之字形打印二叉树
- 之字形打印二叉树
- 之字形打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 牛客网 | 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 55.按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 多源传感器融合
- Android四大组件之Service详解(二)——Service在音乐播放器中的使用
- 方法finalize()的应用
- 随机出10道加法题,统计对的题数
- IntelliJ IDEA之Editor REST Client介绍
- 按之字形数据打印二叉树
- Java IO 转换流
- netty源码分析之-Future、ChannelFuture与ChannelPromise详解(4)
- 【Openjudge】旅行
- 第二章
- Two Sum 从数组中找到两个位置的值相加和为给定目标的值
- 面向对象程序设计上机练习六(类和对象)
- Windows 安装 MongoDB 并开启认证
- acm: 排序--归并排序(1/2)