':type root: TreeNode
:rtype: int'

def longestConsecutive(self, root):

    self.max_len = 0
    def longestConsecutiveHelper(root):
        if (not root):
            return 0
        left_len = longestConsecutiveHelper(root.left)
        right_len = longestConsecutiveHelper(root.right)
        cur_len = 1
        if (root.left and (root.left.val == (root.val + 1))):
            cur_len = max(cur_len, (left_len + 1))
        if (root.right and (root.right.val == (root.val + 1))):
            cur_len = max(cur_len, (right_len + 1))
        self.max_len = max(self.max_len, cur_len, left_len, right_len)
        return cur_len
    longestConsecutiveHelper(root)
    return self.max_len
