输出树单层结点
来源:互联网 发布:js中invoke 编辑:程序博客网 时间:2024/05/01 19:21
题目描述
对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。
给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。
class TreeLevel {public: ListNode* getTreeLevel(TreeNode* root, int dep) { // write code here if(root == NULL) return NULL; //init int count = -1; queue<TreeNode*> que; TreeNode* level = new TreeNode(count); //第一层,序号在结点之前 que.push(level); que.push(root); count--; //第二层 while (!que.empty()){ TreeNode* tmp = que.front(); que.pop(); int key = tmp->val; //结点 if(key >= 0){ if(tmp->left != NULL) que.push(tmp->left); if(tmp->right != NULL) que.push(tmp->right); } //层标志 else{ //到达所要的层 if(dep == -key){ ListNode* head = new ListNode(0); ListNode* p = head; while (!que.empty()){ //树操作,拿出队列的后续所有数据 key = que.front()->val; que.pop(); //链表操作 ListNode* list_tmp = new ListNode(key); p->next = list_tmp; p = p->next; } return head->next; } //还没到指定层 else{ tmp->val = count; count--; que.push(tmp); } } } return NULL; }};
0 0
- 输出树单层结点
- 输出单层结点
- 牛客网 | 输出单层结点
- 输出单层结点
- 输出单层结点
- 输出单层结点
- 输出单层结点
- 输出单层结点
- 输出单层结点
- 第九天 输出单层结点
- 面试算法-----输出单层结点
- 《程序员面试金典》输出单层结点
- 输出单层结点之程序员面试经典
- 程序员面试金典——输出单层结点
- 程序员面试金典——输出单层结点
- 输出树的单层节点
- 二叉树层次遍历(单层输出)
- 程序员面试金典:高度最小的BST、输出单层结点
- hdu 1113
- 全球的开源镜像站点
- Maven简介
- 最大子矩阵
- 使用CNN模型来测试Kaggle入门比赛
- 输出树单层结点
- 家里搞个WIFI
- JNI入门(续)
- 为什么有些大公司技术弱爆了?
- 数据结构实验之串二:字符串匹配
- NOSQL介绍
- jenkins通过fir插件实现ipa的自动发包
- HDU:1811 Rank of Tetris(拓扑排序+链表+并查集)
- C基础(46——50)