1. 程式人生 > >【面試演算法】——二叉樹(一)

【面試演算法】——二叉樹(一)

一、二叉樹問題概述

二叉樹型別的題目為常考題型

原因:

  • 能夠結合佇列、棧、連結串列、字串等多資料結構
  • 需要掌握圖的基本遍歷方法,比如BFS和DFS
  • 需要掌握遞迴函式的使用,並自己設計出遞迴過程
  • 二叉樹問題與實際工作結合緊密

 

二、二叉樹先序,中序和後序遍歷

先序遍歷:先遍歷頭節點,再遍歷左子樹,再遍歷右子樹

中序遍歷:先遍歷左子樹,再遍歷頭節點,再遍歷右子樹

後序遍歷:先遍歷左子樹,再遍歷右子樹,再遍歷頭節點

先序遍歷

遞迴實現邏輯

非遞迴實現邏輯

 

中序遍歷

遞迴實現

非遞迴實現

 

後序遍歷

遞迴實現

非遞迴實現

 

複雜度

三種遍歷的非遞迴演算法的時間複雜度為O(N),空間複雜度為O(L),N為二叉樹的節點數,L為二叉樹的層數