树/森林和二叉树的转换
Posted zxcoder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树/森林和二叉树的转换相关的知识,希望对你有一定的参考价值。
树转二叉树
左儿子右兄弟,即第一个儿子是左二子,第一个兄弟是右儿子,然后按层次按顺序调整每一个即可。
规范做法是三步:
- 加线: 同一层的兄弟按顺序加线。
- 去线: 保留第一个儿子,其他儿子连线删掉。
- 调整层次。
森林转二叉树
先将每个树转成二叉树,然后从第二棵开始,把每一棵二叉树的根都作为前一棵的右儿子。
二叉树转树
根据树转二叉树,考虑逆过程,如果一个节点有左儿子,那么这个左二子的右儿子,右儿子的右儿子,...都是该节点的兄弟节点。
规范做法也是三步:
- 加线: 左儿子的右儿子,左儿子的右儿子的右儿子,...都连上该节点。
- 去线: 删除这些右儿子原本的线。
- 调整层次。
二叉树转森林
当一棵二叉树根节点有右儿子,断开成为两棵树再分别转换。
以上是关于树/森林和二叉树的转换的主要内容,如果未能解决你的问题,请参考以下文章