输出单层结点
来源:互联网 发布:手机荧光字软件 编辑:程序博客网 时间:2024/05/01 17:44
对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。
给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。
<分析>:使用层序遍历,每遍历一层,dep--;当dep==1时,就遍历到了dep层,就可以停止遍历了。
开始将队列中剩下的结点放入到链表中。
Queue队列使用LinkedList
入队offer 出队poll 判断是否为空isEmpty() 判断尺寸size()
import java.util.*;/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*//*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class TreeLevel { public ListNode getTreeLevel(TreeNode root, int dep) { // write code here Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while(dep>1 && !queue.isEmpty()){int len = queue.size(); for(int i=0;i<len;i++){ TreeNode node = queue.poll(); if(node.left!=null){ queue.offer(node.left); } if(node.right!=null){ queue.offer(node.right); } } dep--; } ListNode node = new ListNode(queue.poll().val); ListNode temp = node; while(!queue.isEmpty()){ temp.next=new ListNode(queue.poll().val); temp = temp.next; } return node; }}
阅读全文
0 0
- 输出单层结点
- 牛客网 | 输出单层结点
- 输出单层结点
- 输出单层结点
- 输出单层结点
- 输出树单层结点
- 输出单层结点
- 输出单层结点
- 输出单层结点
- 第九天 输出单层结点
- 面试算法-----输出单层结点
- 《程序员面试金典》输出单层结点
- 输出单层结点之程序员面试经典
- 程序员面试金典——输出单层结点
- 程序员面试金典——输出单层结点
- 程序员面试金典:高度最小的BST、输出单层结点
- 单层输出节点
- 输出单层节点
- 把十进制的数字转为任何进制
- Luogu 1083(借教室)(NOIP 2012)
- Fibonacci数列
- shell脚本ssh登入
- Netty源码分析:PooledByteBufAllocator
- 输出单层结点
- matlab cplex使用
- SPFA的运用
- OpenCV resize函数改变图像的大小
- 某区间内1的数量
- ZOJ1002 Fire Net(DFS)
- 哈哈日语 五十音图中发音最难的四个假名
- rmq模板
- Centos CPU 核数 和 型号 和 主频