树,森林和二叉树的转换并不难,但是其绕来绕去的转换却很麻烦,尤其是在面临 考试的时候,很容易把自己绕昏,这里总结以下用口诀的方式加强各种转换的记忆。
1. 树和森林->二叉树
口诀
- 同级加线:同一层次的结点连线
- 越级只留左边线:不同层次的结点只保留最右的孩子的连线
- 长子在左,其子为右(其他孩子依次沦落为长子的右孩子):加去线完成后,调整生成的二叉树的结构。长子作为左结点,原来同一层级的兄弟结点依次作为右结点
- 森林转二叉树的步骤和上面一样,只需要在最后把独立的各个树按兄弟在右的要求连接
2. 二叉树->树和森林
口诀
- 左孩子:所有二叉树结点的左孩子不动
- 右兄弟:所有二叉树结点的右孩子加线变成二叉树左孩子(不动的那个)的兄弟
- 右子树全可拆:如果是森林,那么右子树一一断开再完成1,2步