【算法刷题1】二叉树的前序遍历
生活随笔
收集整理的這篇文章主要介紹了
【算法刷题1】二叉树的前序遍历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解題思路
什么是二叉樹的前序遍歷?簡單來說就是“根左右”,展開來說就是對于一顆二叉樹優先訪問其根節點,然后訪問它的左子樹,等左子樹全部訪問完了再訪問其右子樹,而對于子樹也按照之前的訪問方式,直到到達葉子節點。
從上述前序遍歷的解釋中我們不難發現,它存在遞歸的子問題:每次訪問一個節點之后,它的左子樹是一個要前序遍歷的子問題,它的右子樹同樣是一個要前序遍歷的子問題。那我們可以用遞歸處理:
終止條件: 當子問題到達葉子節點后,后一個不管左右都是空,因此遇到空節點就返回。
返回值:每次處理完子問題后,就是將子問題訪問過的元素返回,依次存入了數組中。
本級任務:每個子問題優先訪問這棵子樹的根節點,然后遞歸進入左子樹和右子樹。
因此處理的時候,過程就是:
step 1:準備數組用來記錄遍歷到的節點值,Java可以用List,C++可以直接用vector。
step 2:從根節點開始進入遞歸,遇到空節點就返回,否則將該節點值加入數組。
step 3:依次進入左右子樹進行遞歸。
總結
以上是生活随笔為你收集整理的【算法刷题1】二叉树的前序遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IIS问题解决之——无法访问数据库
- 下一篇: python subplot_Pytho