将二叉树的叶子结点转换成单链表,并返回最左叶子结点的地址(链头)
http://blog.csdn.net/wangyangkobe/article/details/6756700
编写一个递归算法,利用叶子结点中空的 右连接指针域rchild,将所有叶子结点自左向右链接成一个单链表,算法返回最左叶子结点的地址(链头)。
//有一个关键点我没有想到,就是node始终记录的是单链表的最后一个元素
void link(Node * root, Node * &node) {if (root-left == NULL && root->right == NULL) {node->right = root;node = node ->right;return;}if (root->left != NULL)link(root->left,node);if (root->right != NULL)link(root->right,node);}Node * tree2leaf(Node *root) {if (root == NULL)return NULL;Node head;link(root, head);return head->right;
}
将二叉树的叶子结点转换成单链表,并返回最左叶子结点的地址(链头)相关推荐
- java数组转换成单链表_【转】单向链表(单链表)的Java实现
最近被问到链表,是一个朋友和我讨论Java的时候说的.说实话,我学习编程的近一年时间里,学到的东西还是挺少的.语言是学了Java和C#,关 于Web的学了一点Html+css+javascript.因 ...
- (不带头结点的)单链表增删查改,逆置单链表(两种方法),求两个单链表的第一个公共结点,合并两个单链表,单循环链表中判断第一个入环点,约瑟夫环
补充了每个算法的基本思想,并且画了思路图,源代码都经过调试成功 1.SlistNode.c文件 (1) (不带头结点的)单链表增删查改 #include "SlistNode.h" ...
- 删除单链表中倒是第K个结点
[问题描述] 设有头结点单链表,删除单链表中倒数第k个结点. [输入形式] 第一行输入若干个整数建立带头结点的单链表(以输入字符作为结束). 第二行输入一个整数k,表示删除倒数第k个结点. [输出形式 ...
- 为什么有时候NSData转换成NSString的时候返回nil
为什么有时候NSData转换成NSString的时候返回nil 有时候,NSData明明有值,可是,当转换成NSString的时候,却没有值,现在来进行测试:) -现在提供测试用素材- 源码如下: / ...
- 单链表中倒数第K个结点
单链表中倒数第K个结点 链表结点定义如下: typedef int ElemType;typedef struct Node {ElemType data; struct Node *next; }H ...
- Lintcode -378. 将二叉查找树转换成双链表
378. 将二叉查找树转换成双链表 将一个二叉查找树按照中序遍历转换成双向链表. 样例 给定一个二叉查找树: 4/ \2 5/ \ 1 3 返回 1<->2<->3<-& ...
- 创建一个不带头结点的循环单链表并进行相关操作
所谓循环链表就是最后一个节点的指针域不是指向空,而是指向第一个节点,这样就实现了循环. 下面是c语言代码实现 LinkList create_linklist() {int len; //用来存储节点 ...
- 删除带头结点单链表中倒数第k个结点
[问题描述] 设有头结点单链表,删除单链表中倒数第k个结点. [输入形式] 第一行重复输入整数建立带头结点的单链表,输入字符结束. 第二行输入一个整数k,表示删除倒数第k个结点. [输出形式] 输出删 ...
- 算法设计 删除无序单链表中的值域重复的结点
删除无序单链表中的值域重复的结点 题目: 有一个带头结点的单链表head,其中可能出值域重复的结点,设计一个算法删除值域重复的结点.要求在主函数中调用设计的算法,给出结果. 思路:删除某个结点值的重复 ...
最新文章
- 微软职位内部推荐-Senior Software Engineer
- 把数学函数印在T恤上却被告侵权,这位程序员怒了
- 用3ds导入spk文件好小坐标多_2020东莞长安贴片厂代工代料哪家好-鸿鑫辉
- 精度问题——直线方程的系数判断实际生产中三点能否确定一个圆
- Linux 技巧:让进程在后台可靠执行的几种方法
- 多个线程访问统一对象的不同方法_不会多线程还想进BAT?精选19道多线程面试题,有答案边看边学...
- [原创]Zenoss配置入门-邮件短信通知
- linux系统下安装jdk教程
- leetcode面试题 17.08. 马戏团人塔(二分法)
- linux两个命令一起,paste命令 – 合并两个文件
- 【转】RNN、LSTM、Transformer、BERT简介与区别
- 【渝粤教育】国家开放大学2018年春季 7408-21T多媒体软件制作与使用 参考试题
- 传京东副总裁蒉莺春或将接管POP业务-搜狐IT
- 【图像分割】基于matlab模糊聚类算法FCM图像分割【含Matlab源码 084期】
- 8086汇编基础 inc 自加一
- 用ruby编写标准计算器_WatirMaker再次用Ruby编写
- NuGet是什么?为什么.NET项目中会有NuGet?如何使用NuGet程序包?
- 杭电1070--喝牛奶
- 解决pads新建总是提示替换字体
- VIVO可能在某一段时间内手机充电数据线上并没有ID脚
热门文章
- 五十七、Vue中的八大生命周期函数
- 九十一、Python的GUI系列 | QT组件篇
- R 语言聚类关联规则
- Self-Orthogonality Module:一个即插即用的核正交化模块
- ICCV 2019 | 从多视角RGB图像生成三维网格模型Pixel2Mesh++
- 飞桨上线万能转换小工具,教你玩转TensorFlow、Caffe等模型迁移
- NAACL 2019最佳论文:量子概率驱动的神经网络
- 用好这几款炼丹利器,调参从此得心应手 | Let's Fork
- java抽象类与接口5.4-5.7 2020.3.31
- imagenet数据格式以及python文件处理的一些函数