剑指offer——按之字形打印二叉树
来源:互联网 发布:java初学者知乎 编辑:程序博客网 时间:2024/06/16 03:11
题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
思路:层次遍历,增加一个boolean类型变量来判定每次是从左向右,还是从右向左。
用Collections的reverse方法来逆置集合。
import java.util.ArrayList;import java.util.Collections;import java.util.LinkedList;import java.util.Queue;/*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>>lists = new ArrayList<>(); if(pRoot==null)return lists; Queue<TreeNode>queue = new LinkedList<>(); queue.offer(pRoot); boolean left = true; while(!queue.isEmpty()){ int len = queue.size(); ArrayList<Integer> list = new ArrayList<>(); for(int i=0;i<len;i++){ TreeNode node = queue.poll(); list.add(node.val); if(node.left!=null)queue.offer(node.left); if(node.right!=null)queue.offer(node.right); }//for if(left){ lists.add(list); }else {Collections.reverse(list);lists.add(list); } left =!left; }//while return lists; }}
阅读全文
0 0
- 《剑指offer》——按之字形顺序打印二叉树
- 剑指offer——按之字形顺序打印二叉树
- 剑指offer——按之字形打印二叉树
- 剑指offer——按之字形顺序打印二叉树
- 剑指offer—按之字形顺序打印二叉树
- 剑指offer—按之字形顺序打印二叉树
- 剑指Offer——之字形打印二叉树
- 剑指offer——之字形打印二叉树(一般)
- 剑指offer(C++)——按之字形顺序打印二叉树
- 剑指offer——59.按之字形顺序打印二叉树
- 剑指offer——面试题61:按之字形顺序打印二叉树
- 剑指offer----之字形打印二叉树
- 剑指offer--按之字形顺序打印二叉树
- 剑指offer 61 - 按之字形打印二叉树
- 《剑指offer》按之字形顺序打印二叉树
- 剑指offer:按之字形顺序打印二叉树
- 剑指offer:按之字形顺序打印二叉树
- [剑指offer]按之字形顺序打印二叉树
- leetcode 492. Construct the Rectangle
- 数据库设计中的14个技巧
- Linux-目录结构及文件基本操作
- Linux使用技巧
- js数据类型
- 剑指offer——按之字形打印二叉树
- Java经典笔试题
- js方法
- 算法14讲——MST/Greedy
- 使用python裁剪掉序列帧的多余空白
- How to quickly look up a word in dictionary
- nginx的安装
- js对象
- urlretrieve函数【远程数据下载到本地的函数】