樹的DFS:深度優先搜索,從根到葉的遍歷方法
樹由節點和邊組成,每個節點(除根外)有一個父節點,可有多子節點。DFS(深度優先搜索)是“深入一條路到黑再回溯”的遍歷方法。樹的DFS遍歷含前序(根→左→右)、中序、後序,前序最直接體現根到葉路徑。 遞歸實現前序遍歷:訪問當前節點→遞歸左子樹→遞歸右子樹。以示例樹(根1,左2、右3;2左4、右5)爲例,順序爲1→2→4→5→3。非遞歸用棧:初始化棧入根,循環彈出棧頂訪問,先右後左入棧子節點。 根到葉DFS遍歷用於路徑求和、輸出路徑等問題。遞歸實現直觀,非遞歸用棧模擬適合大數據。掌握前序遍歷是樹結構核心技能。
閱讀全文二叉樹:二叉樹的三種遍歷方式,遞歸實現超簡單
這篇文章介紹了二叉樹的三種經典遍歷方式(前序、中序、後序),基於遞歸實現,核心是明確根節點的訪問位置。 二叉樹每個節點最多有左右子樹,遍歷即按特定順序訪問節點。遞歸是關鍵,類似“套娃”,函數自調用且範圍縮小,直到遇到空節點終止。 三種遍歷順序區別:前序(根→左→右)、中序(左→根→右)、後序(左→右→根)。以示例樹(根1,左2,右3;2的左4,右5)爲例: - 前序遍歷結果:1 2 4 5 3; - 中序遍歷結果:4 2 5 1 3; - 後序遍歷結果:4 5 2 3 1。 遞歸實現核心:終止條件(空節點返回)+ 按遍歷順序遞歸左右子樹。通過明確根位置和遞歸邏輯,可清晰理解遍歷過程。
閱讀全文