1.题目描述

上图中的二叉树的叶子结点,按从左到右的顺序连成的单链表如下图所示:

2.解题思路

题目要求将叶子节点按自左向右的次序连接成一个单链表,因此很容易考虑到的便是将整棵二叉树按照先序或中序或后序的方式遍历一次。
在遍历的过程中对叶子节点单独判断,如果是叶子节点,则将其做一个标识(比如用额外的指针指向该节点),接着遍历下一个叶子节点,遍历到另一个叶子节点后,然后让已被标识的叶子节点的右孩子指向该节点,依次类推便可以实现将叶子节点连接成单链表。
————————————————
版权声明:本文为CSDN博主「法海你懂不」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013595419/article/details/51870361

下文使用先序遍历

3.代码实现

核心代码:

void leafLink(pnode root)
{if(!root){return;}if(NULL == root->left && NULL == root->right){if(NULL == firstLeaf){firstLeaf = root; // 保存找到的第一个叶子结点(k指针)pcur = firstLeaf;}else{// 链接时用叶子结点的rchild域存放指针pcur->right = root;pcur = pcur->right;}}if(root->left){leafLink(root->left);}if(root->right){leafLink(root->right);}
}

参考:https://blog.csdn.net/haishu_zheng/article/details/79987599

二叉树的叶子结点按从左到右的顺序连成一个单链表相关推荐

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

    http://blog.csdn.net/wangyangkobe/article/details/6756700 编写一个递归算法,利用叶子结点中空的 右连接指针域rchild,将所有叶子结点自左向 ...

  2. 数据结构用递归算法计算二叉树中叶子结点数目的思想c语言程序,编写递归算法计算二叉树中叶子结点的数目。.doc...

    编写递归算法计算二叉树中叶子结点的数目. 学院名称专业班级实验成绩学生姓名学号实验日期课程名称数据结构实验题目2 树一.实验目的与要求 Cfree 三.实验内容和原理 [问题描述] [输入] &quo ...

  3. C/C++递归算法,计算二叉树中叶子结点的数目

    关键思路:叶子结点的度为0,即没有左孩子和右孩子 关键代码: int searchNum(BiTree T) {if (!T) return 0;else{int l, r;l=searchNum(T ...

  4. 编写递归算法,计算二叉树中叶子结点的数目

    编写递归算法,计算二叉树中叶子结点的数目 1 #include<iostream> using namespace std;typedef struct TNode//二叉树结构 {cha ...

  5. 31行代码AC——PTA 求二叉树的叶子结点个数 (20分)——解题报告

    励志用尽量少的代码做高效的表达. 以二叉链表作为二叉树的存储结构,求二叉树的叶子结点个数. 输入格式: 输入二叉树的先序序列. 提示:一棵二叉树的先序序列是一个字符串,若字符是'#',表示该二叉树是空 ...

  6. 求二叉树的叶子结点个数(C语言)

    输入格式: 输入二叉树的先序序列. 提示:一棵二叉树的先序序列是一个字符串,若字符是'#',表示该二叉树是空树,否则该字符是相应结点的数据元素. 输出格式: 输出有两行: 第一行是二叉树的中序遍历序列 ...

  7. Java创建二叉树,并使用递归算法求二叉树中叶子结点的数目

    问题描述 创建二叉树,并使用递归算法求二叉树中叶子结点的数目 输入 输入一个用'.'来标明空子树的先根遍历序列,如ABD-EH-CF.I-G- 输出 叶子结点的个数 存储结构 二叉树 算法的基本思想 ...

  8. 统计二叉树中叶子结点数数据结构C语言,统计二叉树中叶子结点个数的问题,

    #include #include typedef struct Node { int data; struct Node *LChild; struct Node *RChild; }BiTNode ...

  9. 求二叉树的叶子结点个数

    7-5 求二叉树的叶子结点个数 (20 分) 以二叉链表作为二叉树的存储结构,求二叉树的叶子结点个数. 输入格式: 输入二叉树的先序序列. 提示:一棵二叉树的先序序列是一个字符串,若字符是'#',表示 ...

最新文章

  1. JavaScript碎片
  2. 小程序css中设置1rpx失效
  3. python中的format什么意思中文-python的format什么意思
  4. 制作带有 GRUB 引导功能的软盘镜像文件
  5. 火山引擎视频云:坚持基础技术创新,打造极致用户体验
  6. mysql 自定义函数之判断
  7. 如何分析EFCore引发的内存泄漏
  8. 产品经理思维模型:用户体验要素
  9. iOS - Masonry自动布局
  10. vue 封装dialog_GitHub - 1014156094/vue-mobile-dialog: Vue移动端基础组件 - 对话框
  11. 计算机408专业考研真题,2021年计算机考研408历年真题及答案
  12. 计算机找网络共享盘快捷键,电脑共享快捷键不见了怎么办
  13. 网页播放Flash视频尝试的三种方式
  14. auto.js脚本自动点击屏幕双11自动领金币
  15. 双线性插值算法的详细总结
  16. c语言字符型常量计算,c语言字符型常量和变量.doc
  17. 基于Matlab软件的视觉导航系统的仿真
  18. splunk-kvstore
  19. Java毕业设计:校园二手闲置物品交易网站(java
  20. SSM框架实现登录注册功能

热门文章

  1. Chrome浏览器 v71.0.3578.99
  2. 2021年南京大学842考研-软件工程部分代码设计题
  3. 华为服务器做系统蓝屏,服务器安装2008r2后蓝屏
  4. 微信小程序云开发-批量上传文件到云储存空间
  5. win10查看打印机端口
  6. FileZilla快速部署
  7. 阿里云(AliCloud)简介
  8. 【论文精读】resnet精读
  9. 用PS制作简单婚纱海报
  10. 不管是否情愿,5G要来了,运营商该做的事一样也不能少