例如,給定如下二叉搜尋樹: root = [6,2,8,0,4,7,9,null,null,3,5]
_______6______
/ \
___2__ ___8__
/ \ / \
0 _4 7 9
/ \
3 5
示例 1:
輸入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
輸出: 6
解釋: 節點 2 和節點 8 的最近公共祖先是 6。
示例 2:
輸入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
輸出: 2
解釋: 節點 2 和節點 4 的最近公共祖先是 2, 因為根據定義最近公共祖先節點可以為節點本身。
求解分析:
如果乙個結點的左右子樹都發現了目標值,則該結點就是最近公共祖先,如果左子樹發現了結點,而右子樹沒有發現結點,則遞迴處理左子樹,反之處理右子樹。**如下:
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
};
由於題目中的是二叉搜尋樹,我們還可以利用二叉搜尋樹的性質來求解。**如下:
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
};
Leetcode 235 二叉樹的最近公共祖先
給定乙個二叉搜尋樹,找到該樹中兩個指定節點的最近公共祖先。示例 1 輸入 root 6,2,8,0,4,7,9,null,null,3,5 p 2,q 8 輸出 6 解釋 節點 2 和節點 8 的最近公共祖先是 6。示例 2 輸入 root 6,2,8,0,4,7,9,null,null,3,5 p...
LeetCode 235 二叉樹的最近公共祖先
問題描述 給定乙個二叉搜尋樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉搜尋樹 root 6,2,8,0,4,7,9,null,null,3,5 6 2 8 0 4 7 9 3 5示例 1 輸入 root 6,2,8,0,4,7,9,null,null,3,5 p 2,q 8輸出 6解...
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 的最近公共祖先是...