对于森林中的所有分支结点(分支结点就是非叶子结点,包含了根节点):其所有孩子都会连到它对应二叉树的左子树中,最左边的孩子成为这棵左子树的根节点,最右边的孩子由于没有兄弟了,转为二叉树后,它的右孩子一定为空。

也就是说,对于森林中的每个分支结点,都存在它的1个孩子结,转换为二叉树后右孩子为空,设森林有n个分支结点,故有n个对应的无右孩子的结点。

再来看二叉树的根节点(见下图中的B结点):它作为分支结点,提供了一个无右孩子的结点(见下图B的黑色箭头);作为根结点本身,在森林中的最右兄弟(见下图中的D结点)转为二叉树后也是没有右孩子的(见下图B的红色箭头),因此根节点总共提供了2个无右孩子的结点。

因此,森林转二叉树,无右孩子的结点由两部分提供:每个分支结点提供一个+根节点额外提供一个,总共有n+1个结点无右孩子。树可以看做只有1棵树的森林,也能得到同样的结论。

一图胜千言,看这张图应该会容易理解一些,黑色箭头指向作为分支结点提供的无右孩子的结点,红色表示根结点作为其本身提供的无右孩子的结点

底图出自王道考研数据结构的这个视频(在10min左右)

森林转二叉树,二叉树无右孩子结点的个数相关推荐

  1. 统计二叉树中只有右孩子的结点个数

    Description 设二叉树的存储结构为二叉链表.在二叉链表中的每个结点由三部分组成:左孩子指针.右孩子指针和结点数据,其中如果一个结点的左右孩子不存在,则对应的指针记录为空,空指针用字符^占位. ...

  2. 求二叉树中第K层结点的个数

    一,问题描述 构建一棵二叉树(不一定是二叉查找树),求出该二叉树中第K层中的结点个数(根结点为第0层) 二,二叉树的构建 定义一个BinaryTree类来表示二叉树,二叉树BinaryTree 又是由 ...

  3. 求二叉树中结点个数代码java_求二叉树中第K层结点的个数

    一,问题描述 构建一棵二叉树(不一定是二叉查找树),求出该二叉树中第K层中的结点个数(根结点为第0层) 二,二叉树的构建 定义一个BinaryTree类来表示二叉树,二叉树BinaryTree 又是由 ...

  4. 树和森林转二叉树,二叉树无右孩子(或右指针域为空)的结点个数计算思路

    前提是知道非终端结点(分支结点)的个数,假设非终端结点的个数为n 1.对于树转二叉树: 因为转化规则是"左孩子右兄弟",如果有n个分支结点,因为每个分支结点都会有孩子,这些孩子都是 ...

  5. 数据结构——简单实现森林转化为二叉树

    孩子兄弟表示法的理解与代码实现|树转化为二叉树 森林是由若干棵树组成,可以将森林中的每棵树的根结点看作是兄弟,由于每棵树都可以转换为二叉树,所以森林也可以转换为二叉树. 将森林转换为二叉树的步骤是: ...

  6. 树:求二叉树的高度和叶子结点数量

    算法代码很简单都是用使用递归计算,大家把递归思想领悟到就ok了. 二叉树高度算法 //求二叉树的高度 采用递归的方式 void GetHeight(BiTree tree, int* heightNu ...

  7. DS二叉树—二叉树结点的最大距离

    题目描述 二叉树两个结点的距离是一个结点经过双亲结点,祖先结点等中间结点到达另一个结点经过的分支数.二叉树结点的最大距离是所有结点间距离的最大值.例如,下图所示二叉树结点最大距离是3,C和D的距离. ...

  8. 设森林F对应的二叉树为B,它有m个结点,B的根p,p右子树结点个数n,森林F中第一棵树的结点个数

    题目:设森林F对应的二叉树为B,它有m个结点,B的根p,p右子树结点个数n,森林F中第一棵树的结点个数 设森林F对应的二叉树为B :它的意思就是将森林F转换为二叉树. 它有m个结点 :这颗二叉树总共有 ...

  9. 找二叉树中给定元素的的左孩子结点_二叉树的实现和操作

    0.定义: 二叉树,是每个节点最多只有两个分之的树结构,通常分之被称作"左子树"或者"右子树":二叉树的分之具有左右次序,且不能随意颠倒. 1.特性 在二叉树的 ...

最新文章

  1. HTML基础 --- HTML简介
  2. loader调用过程
  3. python3.0与2.0,python3.0与python2.0有哪些不同
  4. Backup Exec for Windows Servers (BEWS) 简体中文文档汇总(持续更新)
  5. mat 内存分析 Linux,JVM内存分析工具MAT使用简介
  6. 后疫情时代,初创企业生存之策
  7. JavaBean 与 EJB 的区别
  8. 苹果Mac高级音乐播放器:Swinsian
  9. kubernetes视频教程笔记 (4)-服务发现-service和pod组建
  10. Linux虚拟机设置Samba服务
  11. 天正网络版服务器填写位置,教你如何在天正里面输入坐标定位
  12. segy地震数据的读取python_python segy格式地震数据读写包segyio学习笔记(二)
  13. sqlhelper java_java版sqlhelper
  14. 账龄分析表excel模板_Excel技巧 | 简单而强大的功能 数据统计分析必备—数据透视表...
  15. Webpack打包UMD的export要带default访问问题
  16. Angularjs1 [$rootScope:inprog] inprogress error
  17. python 100days github_GitHub - 382982408/Python-100-Days: Python - 100天从新手到大师
  18. 安装QQ时创建目录失败的解决办法
  19. CM安装成功,CM的web界面登录不上解决方案
  20. 静态库,动态库是啥,有啥区别(静态函数库/动态函数库)

热门文章

  1. iphone“连接到icloud是出错”的可能原因
  2. esp32使用MicroPython驱动oled屏显示中文和英文
  3. HtmlEncode和JavaScriptEncode(预防XSS)
  4. 刷脸支付利用线下流量是至关重要的
  5. 用纸做简单的计算机,“纸”要轻松 简单实用的卡纸处理技巧
  6. 想从单体架构演进到分布式架构,SBA 会是一个不错的选择
  7. clickhouse 分区表使用
  8. K2T突然掉电——原来是电源坏了
  9. CentOS 7进入单用户模式修改root密码
  10. 访问IP地址时host头可以改为任意域名