剑指Offer—60—把二叉树打印成多行
来源:互联网 发布:lastindexof的用法 js 编辑:程序博客网 时间:2024/05/21 15:39
把二叉树打印成多行:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
package A60把二叉树打印成多行;import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;public class Solution { // 内存溢出 ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) { ArrayList<ArrayList<Integer>> lists = new ArrayList<ArrayList<Integer>>(); if (pRoot == null) { return lists; } ArrayList<Integer> list = new ArrayList<>(); Queue<TreeNode> queue = new LinkedList<>(); queue.add(null); queue.add(pRoot); while (!queue.isEmpty()) { TreeNode treeNode = queue.poll(); if (treeNode == null) { while (!queue.isEmpty()) { list.add(queue.poll().val); } lists.add(list); list = new ArrayList<>(); queue.add(null); continue; } if (treeNode.left != null) { queue.add(treeNode.left); } if (treeNode.right != null) { queue.add(treeNode.right); } } return lists; }}class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}
package A60把二叉树打印成多行;import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;public class Solution1 { ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) { ArrayList<ArrayList<Integer>> lists = new ArrayList<ArrayList<Integer>>(); if (pRoot == null) { return lists; } ArrayList<Integer> list = new ArrayList<>(); Queue<TreeNode> queue = new LinkedList<>(); queue.add(pRoot); int start = 0; int end = 1; while (!queue.isEmpty()) { TreeNode treeNode = queue.poll(); list.add(treeNode.val); start++; if (treeNode.left != null){ queue.add(treeNode.left); } if (treeNode.right != null){ queue.add(treeNode.right); } if (start == end){ end = queue.size(); start = 0; lists.add(list); list = new ArrayList<>(); // list.clear() 报错. } } return lists; }}
阅读全文
0 0
- 剑指Offer—60—把二叉树打印成多行
- 《剑指offer》——把二叉树打印成多行
- 剑指Offer——把二叉树打印成多行
- 剑指offer——把二叉树打印成多行
- 剑指offer——把二叉树打印成多行
- 剑指offer——把二叉树打印成多行
- 剑指offer——60.把二叉树打印成多行
- 剑指offer—把二叉树打印成多行
- 剑指offer — 把二叉树打印成多行
- 剑指offer—把二叉树打印成多行
- 剑指offer--把二叉树打印成多行
- 《剑指offer》把二叉树打印成多行
- 剑指Offer--把二叉树打印成多行
- 剑指offer:把二叉树打印成多行
- 剑指offer:把二叉树打印成多行
- [剑指offer]把二叉树打印成多行
- 剑指offer|把二叉树打印成多行
- 【剑指Offer】把二叉树打印成多行
- 安卓intent详解
- 数据分析书单
- 【poj3320】Jessica's Reading Problem(尺取)
- mac下 maven打包
- JAVA中递归的概念
- 剑指Offer—60—把二叉树打印成多行
- 好文-Class
- 嵌入式Linux 系统的优化策略和方法
- SpringMvc 数据验证
- _BSMachError: (os/kern) invalid capability (20) _BSMachError: (os/kern) invalid name (15)
- org.springframework.web.context.support.XmlWebApplicationContext
- NKOJ P2451 英雄
- netstat工具
- 根据jks获取Android签名信息