从上往下打印二叉树(Java实现)
来源:互联网 发布:中国农行软件 编辑:程序博客网 时间:2024/06/05 20:01
牛客网测试地址:https://www.nowcoder.com/questionTerminal/7fe2212963db4790b57431d9ed259701
- 空间限制:32768K
- 算法知识视频讲解
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
package go.jacob.test426;import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;public class Demo2 {//循环实现public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {ArrayList<Integer> list=new ArrayList<Integer>();if(root==null)return list;Queue<TreeNode> queue=new LinkedList<TreeNode>();queue.add(root);while(!queue.isEmpty()){TreeNode node=queue.remove();list.add(node.val);if(node.left!=null)queue.add(node.left);if(node.right!=null)queue.add(node.right);}return list;}//递归实现public ArrayList<Integer> PrintFromTopToBottom_2(TreeNode root) {ArrayList<Integer> list=new ArrayList<Integer>();Queue<TreeNode> queue=new LinkedList<TreeNode>();if(root==null)return list;queue.add(root);print_2(list,queue);return list;}private void print_2(ArrayList<Integer> list, Queue<TreeNode> queue) {if(!queue.isEmpty()){TreeNode node=queue.remove();list.add(node.val);if(node.left!=null)queue.add(node.left);if(node.right!=null)queue.add(node.right);}else{return;}}/* * 错误解法:要把左右子节点压入队列以后才能递归! */private void print(TreeNode root,Queue<TreeNode> queue,ArrayList<Integer> list) {queue.add(root);TreeNode node=null;if(!queue.isEmpty()){node=queue.remove();list.add(node.val);if(node.left!=null)print(node.left,queue,list);if(node.right!=null)print(node.right,queue,list);}}public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}}
0 0
- 从上往下打印二叉树(Java实现)
- 从上往下打印二叉树java实现
- java 从上往下打印二叉树
- 从上往下打印二叉树(java版)
- JAVA实现从上往下打印二叉树(《剑指offer》)
- 从上往下打印二叉树
- 从上往下分层打印二叉树
- Q23:从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 利用递归的方法实现字符串倒序
- poj1458 Common Subsequence--最长公共子序列
- NYOJ 阶乘因式分解(二)
- iOS:核心动画之基本动画CABasicAnimation
- Git常用命令
- 从上往下打印二叉树(Java实现)
- Sublime Laravel 插件
- A
- CUDA 编程--线程层次
- 调整数组顺序使奇数位于偶数前面
- linux运维-逻辑卷管理器
- Python matplotlib 线图(plt.plot())
- 如何修改Oracle占用8080端口与Tomcat冲突解决
- VC2008编译FFmpeg