码迷,mamicode.com
首页 > 其他好文 > 详细

树/森林和二叉树的转换

时间:2020-02-09 16:33:52      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:连线   森林   树根   保留   转换   兄弟节点   调整   二叉树   开始   

树转二叉树

左儿子右兄弟,即第一个儿子是左二子,第一个兄弟是右儿子,然后按层次按顺序调整每一个即可。
规范做法是三步:

  • 加线: 同一层的兄弟按顺序加线。
  • 去线: 保留第一个儿子,其他儿子连线删掉。
  • 调整层次。

森林转二叉树

先将每个树转成二叉树,然后从第二棵开始,把每一棵二叉树的根都作为前一棵的右儿子

二叉树转树

根据树转二叉树,考虑逆过程,如果一个节点有左儿子,那么这个左二子的右儿子,右儿子的右儿子,...都是该节点的兄弟节点。
规范做法也是三步:

  • 加线: 左儿子的右儿子,左儿子的右儿子的右儿子,...都连上该节点。
  • 去线: 删除这些右儿子原本的线。
  • 调整层次。

二叉树转森林

当一棵二叉树根节点有右儿子,断开成为两棵树再分别转换。

树/森林和二叉树的转换

标签:连线   森林   树根   保留   转换   兄弟节点   调整   二叉树   开始   

原文地址:https://www.cnblogs.com/zxcoder/p/12287410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!