打印二叉树的某一层
来源:互联网 发布:java软件eclipse中文版 编辑:程序博客网 时间:2024/05/29 09:14
题目描述
对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。
给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。
Code
#include <bits/stdc++.h>using namespace std;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) { ListNode* head=(ListNode* )malloc(sizeof(ListNode)); ListNode* l=head; l=head; queue<TreeNode* >Q; if(root) Q.push(root); int num = 1,dept=1,tag=0; while(!Q.empty()&&dept<=dep) { int num1=0; for(int i=0; i<num; i++) { TreeNode* tmp = Q.front(); Q.pop(); if(dept==dep) { if(!tag) { head->val=tmp->val; l=head; tag=1; } else { ListNode* r=(ListNode* )malloc(sizeof(ListNode)); r->val=tmp->val; l->next=r; l=r; } } if(tmp->left) { Q.push(tmp->left); num1++; } if(tmp->right) { Q.push(tmp->right); num1++; } } dept++; num=num1; } l->next=NULL; return head; }} s;int main() { TreeNode f1=TreeNode(1); TreeNode f2=TreeNode(2); TreeNode f3=TreeNode(3); TreeNode f4=TreeNode(4); f1.left=&f2; f2.left=&f4; f1.right=&f3; TreeNode* root = &f1; ListNode* ans = s.getTreeLevel(root,1); while(ans) { printf("%d -> ",ans->val); ans = ans->next; } puts(""); return 0;}
0 0
- 打印二叉树的某一层
- 微软等数据结构+算法面试100题(36)-- 打印二叉树中某一层的节点
- 关于二叉树的按层打印
- 二叉树的层序打印
- 输出二叉树某一层的所有结点
- 二叉树打印和为某一值的路径
- 打印二叉树中和为某一值的路径
- 打印二叉树中和为某一值的路径
- 打印二叉树和为某一值的路径
- 面试题23:从上往下打印二叉树(层序遍历) && 面试题25:二叉树中和为某一值的路径
- 二叉树的按层打印和ZigZag打印
- 二叉树的按层打印与ZigZag打印
- 平层打印二叉树
- 按层打印二叉树
- 按层打印二叉树
- 按层打印二叉树
- 按层打印二叉树
- 按层打印二叉树
- 学习笔记_android之复制黏贴实现方法
- 记录使用hibernate时遇到的问题
- 网页嵌套视频 swf
- ubuntu apache django 布署
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- 打印二叉树的某一层
- Java调用Oracle存储过程
- 看MapleSim符号如何一步解决并联机构逆运动学问题
- Apache ab 的简单实用
- Android Context 上下文 你必须知道的一切
- ios swift sha1 md5 加密
- python3输出unicode
- 在systemd下如何编写我们的守护进程,利用systemd管理我们的守护进程
- 本文来介绍UITextField控件的使用!