二叉树打印练习题
来源:互联网 发布:js math方法 编辑:程序博客网 时间:2024/06/05 17:46
有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。
给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等于500。
解题思路:
思路还是很清晰的,使用两个队列一个存放节点,一个存放值。先将根节点加入到队列中,然后遍历队列中的元素,遍历过程中,访问该元素的左右节点,再将左右子节点加入到队列中来
链接:https://www.nowcoder.com/courses/1/1/2来源:牛客网 public int[][] printTree(TreeNode root) { // write code here ArrayList<ArrayList> result = new ArrayList(); ArrayList son = new ArrayList(); LinkedList<TreeNode> list = new LinkedList(); list.add(root); TreeNode last = root; TreeNode nlast = null; TreeNode temp = null; while (list.size() > 0) { temp = list.poll(); son.add(temp.val); if (temp.left != null) { list.add(temp.left); nlast = temp.left; } if (temp.right != null) { list.add(temp.right); nlast = temp.right; } if (last == temp) { last = nlast; result.add(son); son = new ArrayList(); } } int re[][] = new int[result.size()][]; //变成二维数组 for (int i = 0; i < result.size(); i++) { son = result.get(i); ///////// re[i] = new int[son.size()]; for (int j = 0; j < son.size(); j++) { re[i][j] = (int)son.get(j); } } return re; }
0 0
- 二叉树打印练习题
- 蓝桥杯练习题 PREV-11 横向打印二叉树(排序二叉树)
- 二叉树练习题
- 二叉树练习题
- 数据结构与算法分析笔记与总结(java实现)--二叉树1:递归二叉树的序列打印练习题
- 数据结构与算法分析笔记与总结(java实现)--二叉树2:非递归二叉树的序列打印练习题
- 【华为练习题】二叉树遍历
- 二叉树7:折纸练习题
- 二叉树部分相关练习题
- 【二叉树】二叉树打印
- 分层打印二叉树
- ZigZag打印二叉树
- 分层打印二叉树
- 横向打印二叉树
- 用凹入表打印二叉树
- 完美打印二叉树
- 逐行打印二叉树
- 之字形打印二叉树
- [4]内核编译与根文件系统制作(国嵌)
- 启动MySQL错误(net start mysql 发生系统错误 5。 拒绝访问。)
- Babelfish
- 微信小程序开发知识点总结
- 说说两年的投资理财经历吧
- 二叉树打印练习题
- JUC中Atomic包分析
- 计算机网络
- UML图
- No result defined for action action.LoginAction and result success
- #398 DIV2 A. Snacktower
- AES加密算法的详细介绍与实现
- 奇妙的数字
- win7下安装python库的若干问题