二叉树中两个节点的最低公共祖先

思路:从根节点找起,通过比较两个节点的值与根节点值差的积,如果小于或者等于零则返回该节点,否则分情况,如果两个节点的值均大于根节点的值则查找根节点的右子树否则查找根节点的左子树,代码如下:

class TreeNode:
    def __init__(self,x):
        self.val=x
        self.left=None
        self.right=None
class Solution:
    def find_parent(self,node1,node2,root):
        if node1==None or node2==None:
            return
        if node1==node2:
            return
        val1=node1.val
        val2=node2.val
        while root!=None:
            if (val1-root.val)*(val2-root.val)<=0:
                return root.val
            elif root.val<val1 and root.val<val2:
                root=root.right
            else:
                root=root.left
        return False