示例2:
兩個節點p,q分為兩種情況:
1、p和q在不同子樹中:
遞迴遍歷左右子樹,如果左右子樹查到節點都不為空,則表明p和q分別在左右子樹中,因此,根節點即為最近公共祖先;
2、p和q在相同子樹中:
(1)如果左子樹包含p和q,那麼到root->left中繼續查詢,最近公共祖先在左子樹裡面。
(2)如果右子樹包含p和q,那麼到root->right中繼續查詢,最近公共祖先在右子樹裡面。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
treenode*
lowestcommonancestor
(treenode* root, treenode* p, treenode* q)
};
LeetCode第236題 二叉樹的最近公共祖先
給定乙個二叉樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉樹 root 3,5,1,6,2,0,8,null,null,7,4 示例 1 輸入 root 3,5,1,6,2,0,8,null,null,7,4 p 5,q 1 輸出 3 解釋 節點 5 和節點 1 的最近公共祖先是節點 ...
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 二叉搜尋樹的最近公共祖先
給定乙個二叉搜尋樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉搜尋樹 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 的最近公共祖先...