劍指offer 面試題50:樹中兩個結點的最低公共祖先

題目:
輸入一棵數(shù)的兩個結點,返回這兩個結點的最低公共祖先

解法:
分析:如果是二叉樹,可以使用遞歸的思路,從根結點開始,如果兩個結點分布在左右兩顆子樹上,則即為所求;如果都在左子樹,遞歸搜索左子樹;如果都在右子樹,遞歸搜索右子樹。

如果是一般的樹,通過保存根節(jié)點到輸入結點的路徑,然后求這兩條路徑的最后一個公共子節(jié)點即可。問題的關鍵就在于求得這個路徑:從根節(jié)點開始,深度優(yōu)先遍歷根節(jié)點的所有子節(jié)點,如果遇到了輸入結點,即求得了路徑。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • B樹的定義 一棵m階的B樹滿足下列條件: 樹中每個結點至多有m個孩子。 除根結點和葉子結點外,其它每個結點至少有m...
    文檔隨手記閱讀 13,703評論 0 25
  • 1.把二元查找樹轉變成排序的雙向鏈表 題目: 輸入一棵二元查找樹,將該二元查找樹轉換成一個排序的雙向鏈表。 要求不...
    曲終人散Li閱讀 3,520評論 0 19
  • 總結 想清楚再編碼 分析方法:舉例子、畫圖 第1節(jié):畫圖分析方法 對于二叉樹、二維數(shù)組、鏈表等問題,都可以采用畫圖...
    M_巴拉巴拉閱讀 1,307評論 0 7
  • 一. 算法之變,結構為宗 計算機在很多情況下被應用于檢索數(shù)據(jù),比如航空和鐵路運輸業(yè)的航班信息和列車時刻表的查詢,都...
    Leesper閱讀 7,406評論 13 42
  • 第一章 緒論 什么是數(shù)據(jù)結構? 數(shù)據(jù)結構的定義:數(shù)據(jù)結構是相互之間存在一種或多種特定關系的數(shù)據(jù)元素的集合。 第二章...
    SeanCheney閱讀 6,013評論 0 19

友情鏈接更多精彩內容