力扣-235-二叉搜索树的最近公共祖先
# 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':
#得到该两个节点的路径,保存下来,对比找到相同的父节点
res = []
def dfs(root,path):
if not root:
return
# print(root.val)
if root.val == p.val or root.val == q.val:
res.append(path+[root.val])
dfs(root.left,path+[root.val])
dfs(root.right,path+[root.val])
dfs(root,[])
print(res)
for i in res[0]:
if i in res[1] :
c = i
# print(root.val,root.left.val)
a = root
def dff(root,c):
# nonlocal a
# print(root.val,root.left.val)
global a
if not root:
print('root is null...')
return
if root.val == c:
print(c)
a = root
dff(root.left,c)
dff(root.right,c)
dff(root,c)
return a
暂时程序出了点问题,后面回来看看,先做个标记