# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
#
# @param root TreeNode类
# @param o1 int整型
# @param o2 int整型
# @return int整型
import copy
class Solution:
li = []
def lowestCommonAncestor(self , root , o1 , o2 ):
# write code here
if self.find(root, o1):
self.li.append(root.val)
l1 = copy.copy(self.li)
self.li.clear()
if self.find(root, o2):
self.li.append(root.val)
l2 = copy.copy(self.li)
self.li
val = None
while l1 and l2:
v1 = l1.pop()
v2 = l2.pop()
if v1 != v2:
return val
val = v1
return val
def find(self, root, o):
if root.val == o:
return True
if root.left:
if self.find(root.left, o):
self.li.append(root.left.val)
return True
if root.right:
if self.find(root.right, o):
self.li.append(root.right.val)
return True
return False