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;
}

将二叉树的叶子结点转换成单链表,并返回最左叶子结点的地址(链头)相关推荐

  1. java数组转换成单链表_【转】单向链表(单链表)的Java实现

    最近被问到链表,是一个朋友和我讨论Java的时候说的.说实话,我学习编程的近一年时间里,学到的东西还是挺少的.语言是学了Java和C#,关 于Web的学了一点Html+css+javascript.因 ...

  2. (不带头结点的)单链表增删查改,逆置单链表(两种方法),求两个单链表的第一个公共结点,合并两个单链表,单循环链表中判断第一个入环点,约瑟夫环

    补充了每个算法的基本思想,并且画了思路图,源代码都经过调试成功 1.SlistNode.c文件 (1) (不带头结点的)单链表增删查改 #include "SlistNode.h" ...

  3. 删除单链表中倒是第K个结点

    [问题描述] 设有头结点单链表,删除单链表中倒数第k个结点. [输入形式] 第一行输入若干个整数建立带头结点的单链表(以输入字符作为结束). 第二行输入一个整数k,表示删除倒数第k个结点. [输出形式 ...

  4. 为什么有时候NSData转换成NSString的时候返回nil

    为什么有时候NSData转换成NSString的时候返回nil 有时候,NSData明明有值,可是,当转换成NSString的时候,却没有值,现在来进行测试:) -现在提供测试用素材- 源码如下: / ...

  5. 单链表中倒数第K个结点

    单链表中倒数第K个结点 链表结点定义如下: typedef int ElemType;typedef struct Node {ElemType data; struct Node *next; }H ...

  6. Lintcode -378. 将二叉查找树转换成双链表

    378. 将二叉查找树转换成双链表 将一个二叉查找树按照中序遍历转换成双向链表. 样例 给定一个二叉查找树: 4/ \2 5/ \ 1 3 返回 1<->2<->3<-& ...

  7. 创建一个不带头结点的循环单链表并进行相关操作

    所谓循环链表就是最后一个节点的指针域不是指向空,而是指向第一个节点,这样就实现了循环. 下面是c语言代码实现 LinkList create_linklist() {int len; //用来存储节点 ...

  8. 删除带头结点单链表中倒数第k个结点

    [问题描述] 设有头结点单链表,删除单链表中倒数第k个结点. [输入形式] 第一行重复输入整数建立带头结点的单链表,输入字符结束. 第二行输入一个整数k,表示删除倒数第k个结点. [输出形式] 输出删 ...

  9. 算法设计 删除无序单链表中的值域重复的结点

    删除无序单链表中的值域重复的结点 题目: 有一个带头结点的单链表head,其中可能出值域重复的结点,设计一个算法删除值域重复的结点.要求在主函数中调用设计的算法,给出结果. 思路:删除某个结点值的重复 ...

最新文章

  1. 微软职位内部推荐-Senior Software Engineer
  2. 把数学函数印在T恤上却被告侵权,这位程序员怒了
  3. 用3ds导入spk文件好小坐标多_2020东莞长安贴片厂代工代料哪家好-鸿鑫辉
  4. 精度问题——直线方程的系数判断实际生产中三点能否确定一个圆
  5. Linux 技巧:让进程在后台可靠执行的几种方法
  6. 多个线程访问统一对象的不同方法_不会多线程还想进BAT?精选19道多线程面试题,有答案边看边学...
  7. [原创]Zenoss配置入门-邮件短信通知
  8. linux系统下安装jdk教程
  9. leetcode面试题 17.08. 马戏团人塔(二分法)
  10. linux两个命令一起,paste命令 – 合并两个文件
  11. 【转】RNN、LSTM、Transformer、BERT简介与区别
  12. 【渝粤教育】国家开放大学2018年春季 7408-21T多媒体软件制作与使用 参考试题
  13. 传京东副总裁蒉莺春或将接管POP业务-搜狐IT
  14. 【图像分割】基于matlab模糊聚类算法FCM图像分割【含Matlab源码 084期】
  15. 8086汇编基础 inc 自加一
  16. 用ruby编写标准计算器_WatirMaker再次用Ruby编写
  17. NuGet是什么?为什么.NET项目中会有NuGet?如何使用NuGet程序包?
  18. 杭电1070--喝牛奶
  19. 解决pads新建总是提示替换字体
  20. VIVO可能在某一段时间内手机充电数据线上并没有ID脚

热门文章

  1. 五十七、Vue中的八大生命周期函数
  2. 九十一、Python的GUI系列 | QT组件篇
  3. R 语言聚类关联规则
  4. Self-Orthogonality Module:一个即插即用的核正交化模块
  5. ICCV 2019 | 从多视角RGB图像生成三维网格模型Pixel2Mesh++
  6. 飞桨上线万能转换小工具,教你玩转TensorFlow、Caffe等模型迁移
  7. NAACL 2019最佳论文:量子概率驱动的神经网络
  8. 用好这几款炼丹利器,调参从此得心应手 | Let's Fork
  9. java抽象类与接口5.4-5.7 2020.3.31
  10. imagenet数据格式以及python文件处理的一些函数