樹中兩個結點的最低公共祖先

2021-10-02 05:09:22 字數 471 閱讀 9336

給出乙個二叉樹,輸入兩個樹節點,求它們的最低公共祖先。

乙個樹節點的祖先節點包括它本身。

注意:輸入的二叉樹不為空;

輸入的兩個節點一定不為空,且是二叉樹中的節點;

樣例

二叉樹[8, 12, 2, null, null, 6, 4, null, null, null, null]如下圖所示:

8/ \

12 2

/ \6 4

如果輸入的樹節點為2和12,則輸出的最低公共祖先為樹節點8。

如果輸入的樹節點為2和6,則輸出的最低公共祖先為樹節點2。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

};

樹中兩個結點的最低公共祖先

題目 輸入兩個樹結點,求它們的最低公共祖先 題目一 如果這個樹是二叉搜尋樹,二叉搜尋樹是排序過的,位於左子樹的結點都比父結點小,而位於右子樹的結點都比父結點大,我們只需要從樹的根結點開始和兩個輸入的結點比較,如果輸入兩個結點都比根結點小,那麼最低的共同父結點一定在當前結點的左子樹中,於是下一步遍歷當...

樹中兩個結點的最低公共祖先

在進行這個問題之前,我們需要考慮以下幾個問題 1 題目告訴我們是樹,但是沒有告訴我們是一棵怎樣的樹。這裡的樹可以分為三種結構。第一種 普通的二叉樹 第二種 結點中含有指向父親結點的指標 第三種 二叉搜尋樹。2 對於不同結構的樹,處理的方式是不一樣的,時間複雜度也是不一樣的,我們需要針對每種結構設計解...

樹中兩個結點的最低公共祖先

場景一 二叉搜尋樹bst 假設是二叉搜尋樹 二叉搜尋樹是乙個排序的二叉樹,左子樹的結點小於根結點,右子樹的結點大於根結點 故找到乙個結點,使其大於左子結點小於右子結點即可。public static treenode getlastcommonnode treenode proot,treenode...