Skip to main content

1644. Lowest Common Ancestor of a Binary Tree II

link

LCA problem

# 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':

self.node = None


def dfs(node, p , q):
if not node:
return 0

left = dfs(node.left, p, q)
right = dfs(node.right, p, q)
current = 1 if node == p or node == q else 0

if not self.node and left + right + current == 2:
self.node = node

return left+right+current




dfs(root, p, q)


return self.node