输出单层结点
来源:互联网 发布:手机淘宝如何修改好评 编辑:程序博客网 时间:2024/05/01 07:27
对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。
给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。
【思路】用两个队列实现树的层序遍历,当遍历到dep层时,创建链表。
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*//*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class TreeLevel {public: ListNode* getTreeLevel(TreeNode* root, int dep) { // write code here if(root==NULL || dep <0) return NULL; ListNode* dummy = new ListNode(-1); ListNode* node = dummy; queue<TreeNode*> q; queue<TreeNode*> q2; q.push(root); int i = 1; while(!q.empty()) {while(!q.empty()) { TreeNode* t = q.front(); q.pop(); if(i==dep) { node->next = new ListNode(t->val); node = node->next; } if(t->left){ q2.push(t->left); } if(t->right) { q2.push(t->right); } } swap(q,q2); if(i == dep){ return dummy->next; } ++i; } return NULL; }};
0 0
- 输出单层结点
- 牛客网 | 输出单层结点
- 输出单层结点
- 输出单层结点
- 输出单层结点
- 输出树单层结点
- 输出单层结点
- 输出单层结点
- 输出单层结点
- 第九天 输出单层结点
- 面试算法-----输出单层结点
- 《程序员面试金典》输出单层结点
- 输出单层结点之程序员面试经典
- 程序员面试金典——输出单层结点
- 程序员面试金典——输出单层结点
- 程序员面试金典:高度最小的BST、输出单层结点
- 单层输出节点
- 输出单层节点
- nodejs ssdb探索
- ios 用 UIBezierPath 实现果冻效果
- Web/HTTP调试利器(Fiddler)
- C语言中怎样判断汉字
- [Python]第九讲:切片
- 输出单层结点
- 折线 曲线图的实现,图表
- 微信支付——调用微信客户端支付之【服务端】开发详解
- Android学习系列(17)--App离线下载
- mysql技术
- Share 学习记录
- 日期计算相关
- DBA 分布式数据库复习总结
- 浅谈友链、权重网站背后的秘密。。