# 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