樹,森林和二叉樹的轉換並不難,但是其繞來繞去的轉換卻很麻煩,尤其是在面臨 考試的時候,很容易把自己繞昏,這裏總結以下用口訣的方式加強各種轉換的記憶。
1. 樹和森林->二叉樹
口訣
- 同級加線:同一層次的結點連線
- 越級只留左邊線:不同層次的結點只保留最右的孩子的連線
- 長子在左,其子爲右(其他孩子依次淪落爲長子的右孩子):加去線完成後,調整生成的二叉樹的結構。長子作爲左結點,原來同一層級的兄弟結點依次作爲右結點
- 森林轉二叉樹的步驟和上面一樣,只需要在最後把獨立的各個樹按兄弟在右的要求連接
2. 二叉樹->樹和森林
口訣
- 左孩子:所有二叉樹結點的左孩子不動
- 右兄弟:所有二叉樹結點的右孩子加線變成二叉樹左孩子(不動的那個)的兄弟
- 右子樹全可拆:如果是森林,那麼右子樹一一斷開再完成1,2步