核心回答
二叉樹是樹結構的基礎模型,遍歷是樹操作的核心原語。掌握二叉樹遍歷,等於掌握了所有樹/圖結構遞歸處理的思維框架。
直接應用場景
- 編譯器/解析器:語法樹 (AST) 的構建、優化、代碼生成全靠遍歷。
- 文件系統/目錄操作:雖是 N 叉樹,但遍歷邏輯完全一致(遞歸處理子目錄)。
- 網絡爬蟲:頁面鏈接圖可抽象為樹,深度/廣度優先遍歷決定抓取順序。
- 遊戲 AI:極小極大算法、蒙特卡洛樹搜索 (MCTS) 本質是遊戲樹遍歷。
- 數據壓縮:霍夫曼編碼樹構建與編碼/解碼遍歷。
- 決策樹/隨機森林:機器學習模型推理即樹遍歷。
- DOM 樹操作:瀏覽器渲染引擎、前端框架虛擬 DOM Diff 遍歷。
為何不直接講 N 叉樹?
- 二叉樹結構最簡單(左右指針),適合教學推導遞歸/迭代/莫里斯遍歷等核心算法。
- 任何 N 叉樹均可轉換為二叉樹(長子-兄弟表示法),算法可復用。
學習建議
- 熟練三種遞歸遍歷 → 手寫非遞歸 (棧) 遍歷 → 理解莫里斯遍歷 (O(1) 空間) → 擴展至 N 叉樹/圖 (DFS/BFS)。
- LeetCode 熱題:94, 144, 145, 102, 103, 199, 230, 124, 543 等。