leetcode 二叉樹的最近公共祖先

2021-09-25 10:31:50 字數 960 閱讀 1610

按照遞迴的思想即可解決本題。

1.當root為p,q或者為null的時候返回本身;

2.遞迴查詢其左右子樹;

3.根據左右子樹的結果,找到規則即可。

具體**如下:

# definition for a binary tree node.

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

:def

lowestcommonancestor

(self, root:

'treenode'

, p:

'treenode'

, q:

'treenode')-

>

'treenode':if

not root or root == p or root == q:

return root

left = self.lowestcommonancestor(root.left, p, q)

right = self.lowestcommonancestor(root.right, p, q)

#four cases

ifnot left and

not right:

return

none

elif left and

not right:

return left

elif

not left and right:

return right

return root

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 的最近公共祖先...