題目:
思路一:遞迴
函式引數和返回值
函式引數為 根節點和目標節點,返回值為公共祖先節點
函式終止的條件
函式為空或者該節點的值為目標節點或者該節點的值位於目標節點之間就返回
單層邏輯
如果節點的值比目標節點的值小,訪問右子樹
如果該節點的值比目標節點大,訪問左子樹
否則返回null;
注意:不用遍歷整棵樹,只需要遍歷一邊
class
solution};
寫法二:
class
solution}if
(cur-
>val < p-
>val && cur-
>val < q-
>val)
}return cur;
//排除上面 三種情況後都返回該節點
}public
: treenode*
lowestcommonancestor
(treenode* root, treenode* p, treenode* q)};
精簡寫法:
class
solution
else
if(root-
>val < p-
>val && root-
>val < q-
>val)
else
return root;}}
;
思路二:迭代法
class
solution
else
if(root-
>val>val&&root-
>val>val)
else
}return root;}}
;
leetcode 235 二叉搜尋樹的最近公共祖先
給定乙個二叉搜尋樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉搜尋樹 root 6,2,8,0,4,7,9,null,null,3,5 示例1 輸入 root 6,2,8,0,4,7,9,null,null,3,5 p 2,q 8 輸出 6 解釋 節點 2 和節點 8 的最近公共祖先是...
Leetcode 235 二叉搜尋樹的公共祖先
給定乙個二叉搜尋樹,找到該樹中兩個指定節點的最近公共祖先。中最近公共祖先的定義為 對於有根樹 t 的兩個結點 p q,最近公共祖先表示為乙個結點 x,滿足 x 是 p q 的祖先且 x 的深度盡可能大 乙個節點也可以是它自己的祖先 例如,給定如下二叉搜尋樹 root 6,2,8,0,4,7,9,nu...
LeetCode 235 二叉搜尋樹的最近公共祖先
給定乙個二叉搜尋樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉搜尋樹 root 6,2,8,0,4,7,9,null,null,3,5 示例 1 輸入 root 6,2,8,0,4,7,9,null,null,3,5 p 2,q 8 輸出 6 解釋 節點 2 和節點 8 的最近公共祖先...