二叉樹遍歷系列總結 遞迴 迭代的統一寫法

2021-10-08 07:33:20 字數 637 閱讀 4539

五、複雜度分析

六、層序遍歷

本文提供二叉樹前中序三種遍歷方式的遞迴和迭代統一寫法。遞迴寫法很簡單

在面試中不足以獲得面試官的青睞,應該重點掌握迭**法

144. 二叉樹的前序遍歷

94 . 二叉樹的中序遍歷

145. 二叉樹的後序遍歷

*****五星重點

遞迴寫法只需要調整list新增節點值 和 左右子樹遞迴的順序即可

前序: 根 左 右 :list.add(root.val) -> dfs(左子樹) -> dfs(右子樹)

中序: 左 根 右 :dfs(左子樹) -> list.add(root.val) -> dfs(右子樹)

後序: 左 右 根 :dfs(左子樹) -> dfs(右子樹) -> list.add(root.val)

二叉樹遍歷(遞迴與迭代)

二叉樹遍歷演算法分為前序 preoredr 中序 inorder 後序 postorder 遍歷。並且可以設計遞迴型或者迭代型演算法。cpp view plain copy print?struct binarytreenode struct binarytreenode 1.1前序遍歷 cpp v...

二叉樹的前序遍歷(遞迴 迭代)

給定乙個二叉樹,返回它的前序遍歷。示例 輸入 1,null,2,3 1 2 3 輸出 1,2,3 高階 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?遞迴確實簡單,隨便寫乙個。definition for a binary tree node.public class treenode class ...

二叉樹非遞迴(迭代)方法遍歷

運用棧來實現二叉樹的前序遍歷 while 棧不為空或結點不為空 出棧的順序和中序遍歷的結果相同 void preorder node root void preorder2 node root void preorder3 node root cur s.top right s.pop 同前序遍歷一...