数据结构与算法--解决问题的方法- 二叉树的的镜像
生活随笔
收集整理的這篇文章主要介紹了
数据结构与算法--解决问题的方法- 二叉树的的镜像
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解決問題的思路
- 工作中遇到的問題可能用到的數據結構由很多,并且各種數據結構都不簡單,我們不可能光憑借想象就能得到問題的解法,因此畫圖是在家具問題過程中用來幫助自己分析,推理的常用手段。很多問題比較抽象,不容易找到解決方案。我們可以借助圖形幫助自己觀察思考。
- 很多比較復雜的數據結構相關的問題,例如,二叉樹,二維數組,矩陣,鏈表,圖等問題。都可以采用畫圖的方式來分析。
- 利用圖像來分析更能夠直觀的找到問題的解決方案,而且有時候在圖中也能看出邊界條件,我們可以將問題的某一種情況來代替全量,得出邊界條件需要滿足的值。這樣編碼會變得更加容易
二叉樹的的鏡像
-
題目:完成一個函數,輸入一個二叉樹,改函數輸出他的鏡像。
-
二叉樹節點定義還是使用前面二叉樹實現原理中的節點定義。
-
樹的鏡像這種問題比較新穎,光靠想的話簡單情況可以想出來,當未必能一下子得出具體的實現方案。我們可以畫出一個鏡像圖如下:
-
我們可以從上圖中直觀的看出鏡像前后的變化,鏡像前后根節點是不變化的,但是左右子樹的位置交換了位置,我們可以一步一步的來話題分析,如下第一步驟。
-
框中的第一個子樹部分的鏡像信息,根節點不變,子樹左右交換,交換后我們可以用同樣的邏輯處理 8-9-2 子樹和其他的子樹,明顯這部分用遞歸可以實現。
-
綜上分析得出:
- 我們先前序遍歷這顆樹的每個節點
- 如果遍歷到的節點有子節點,就交換兩個子節點
- 當交換完所有非葉子節點的左右子節點后,就完成了鏡像的輸出。
-
代碼實現如下:
上一篇:數據結構與算法–代碼魯棒性案例分析
下一篇:數據結構與算法–解決問題的方法-順時針打印矩陣
總結
以上是生活随笔為你收集整理的数据结构与算法--解决问题的方法- 二叉树的的镜像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 想申请一个广告传媒公司需要的手续有哪些
- 下一篇: 抖音怎么拼接多个视频 如何把图片和视频拼