树转换为二叉树
像这样一颗好看的树怎么变成二叉树呢
步骤:
- 加线:
把亲兄弟们连接起来
注意是亲兄弟哦亲兄弟才是一家人哦
- 去线:
每个节点除了 与第一个节点的连线 以外把与 其他节点 的连线删除
变成灰色的就是被删除的连线
- 调整图像:
每个节点如果有 孩子 ,那就将它作为自己的 左孩子 ,没有就是没左孩子,而如果有 右兄弟 就把 右兄弟 作为自己的 右孩子
这波 这波叫兄弟变儿子
画的有亿点点low
然后就成型了
森林转换为二叉树
现在是这三棵好看的树,怎么变成一棵好看的二叉树呢?
步骤:
- 将每棵树变成二叉树
就是这几步:加线 去线 调整图像
从 第二棵二叉树 开始,将 目前二叉树的根节点 连接到 前一个二叉树的根节点 上作为右孩子
这样就变成一棵好看的二叉树了唉
二叉树转换为树
现在有这样一棵好看的二叉树,怎么变成一棵好看的树呢?
- 加线:
如果 此节点 有左孩子节点 那就把它的 右孩子 , 右孩子的右孩子 ,右孩子的右孩子的右孩子 ...都和此节点相连接
就是这样…
.A是此节点,有左孩子B,那就把 B的右孩子C , B的右孩子C的右孩子D 与A相连...然后
.B是此节点,有左孩子E,那就把 E的右孩子F 与B相连
- 去线:
去除 原来的 二叉树 所有节点 与 右节点 的连线
…就是这几根线…
然后它就变成这个样子了(虚线就是已经被去除了的)
- 调整下图像
二叉树转为森林
就是把森林转为树的方法反过来…
判断:当 二叉树根节点 有右孩子 就可以转为 森林 ,否则就只能转为 树
- 从根节点开始,如果有右孩子就把根节点和右孩子的连线分开然后看被分出去的右孩子节点,如果有右孩子就把他们俩分开,然后又看被分出去的右孩子节点…
这波…骨肉分离…
还是看图吧…
- 将每棵二叉树转换为树:
加线,去线,调整图像
…这样就好了…
树和森林的遍历
反手就是记结论