圖解!後序和中序遍歷創建二叉樹

後序和中序遍歷創建二叉樹

核心思路:由後序確定根,由中序遍歷確定左、右子樹

  1. 假定給出中序遍歷:DBEGACHFI

  2. 後序遍歷:DGEBHIFCA

  3. 那麼我們由後序遍歷可以知道這個二叉樹的根爲A(後序遍歷的最後一個點肯定爲這個二叉樹的根)

  4. 由中序遍歷得知DBEG A CHFI,A的左子樹爲DBEG,右子樹爲CHFI

  5. 那麼問題是不是由

    中序遍歷:DBEGACHFI
    後序遍歷:DGEBHIFCA

    轉化爲

    • 左子樹
      - 中序遍歷:DBEG
      - 後序遍歷:DGEB
    • 右子樹
      - 中序遍歷:CHFI
      - 後序遍歷:HIFC
      最後瘋狂遞歸!直到不能遞歸!

    是不是有點思路了?接下來看我畫的圖理解一下吧

圖解思路

最終結果

代碼實現

先mark,下次一定

如果題目改成由前序遍歷和中序遍歷求出二叉樹,是不是能做了呢?

核心:一定要有中序遍歷(確定左右子樹)才能求出二叉樹,即只有前序、後序遍歷求不出二叉樹


2020年5月15日更


這是我第一次嘗試自己畫圖,大家覺得還可以可以點贊、收藏、關注一下吧!
也可以到我的個人博客參觀一下,估計近幾年都會一直更新!和我做個朋友吧!https://motongxue.gitee.io

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章