java面试题(剑指offer):之字形打印二叉树
来源:互联网 发布:la域名查询 编辑:程序博客网 时间:2024/05/16 17:21
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
import java.util.*; /*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
- java面试题(剑指offer):之字形打印二叉树
- 剑指offer面试题61 按之字形顺序打印二叉树(java实现)
- 【剑指offer】面试题32(3):之字形打印二叉树
- 《剑指Offer》学习笔记--面试题61:按之字形顺序打印二叉树
- 【剑指Offer学习】【面试题61:按之字形顺序打印二叉树】
- 剑指offer-面试题61:按之字形顺序打印二叉树
- 剑指offer--面试题61:按之字形顺序打印二叉树
- 剑指offer-面试题61-按之字形顺序打印二叉树
- 剑指offer 面试题61 按之字形顺序打印二叉树
- 【剑指Offer】面试题61:按之字形顺序打印二叉树
- 《剑指offer》Python语言 面试题61:按之字形顺序打印二叉树
- 剑指offer——面试题61:按之字形顺序打印二叉树
- 剑指offer-----按之字形顺序打印二叉树(java版)
- 剑指offer----之字形打印二叉树
- 剑指offer(62):之字形打印二叉树
- 剑指offer(56)-按之字形顺序打印二叉树
- 剑指offer——之字形打印二叉树(一般)
- 面试题61:按之字形顺序打印二叉树
- 局域网访问PHP项目网站 用IP地址进入
- STM32--DMA详解
- Selenium之常见元素处理系列一--单选框(radio)
- Codeforces Round #430 (Div. 2)
- 51Nod-1380-夹克老爷的逢三抽一
- java面试题(剑指offer):之字形打印二叉树
- hdu1115求凸包重心
- 鼠标点击中的时候实现拖拽动作
- javaScriptCore 笔记
- 选取部分求和的数字中的最小数
- vue+webpack的快速使用指南
- eclipse封装jar包的简单过程
- Python发送QQ邮件
- Java实现二叉查找树