Leetcode: Binary Tree Longest Consecutive Sequence

原创 2015年11月20日 18:21:40

Question

Given a binary tree, find the length of the longest consecutive sequence path.

The path refers to any sequence of nodes from some starting node to any node in the tree along the parent-child connections. The longest consecutive path need to be from parent to child (cannot be the reverse).

For example,
1
\
3
/ \
2 4
\
5
Longest consecutive sequence path is 3-4-5, so return 3.
2
\
3
/
2
/
1
Longest consecutive sequence path is 2-3,not3-2-1, so return 2.
Show Company Tags
Hide Tags Tree
Hide Similar Problems (H) Longest Consecutive Sequence


My solution

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def longestConsecutive(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """

        self.length = 0
        self.helper(root)
        return self.length

    def helper(self, root):
        if root==None:
            return -1

        l = self.helper(root.left)
        r = self.helper(root.right)

        left  = True if root.left!=None and root.val == root.left.val -1 else False
        right = True if root.right!=None and root.val == root.right.val -1 else False

        if left and right:
            self.length = max( [self.length, 1+l, 1+r] )
            return max([1+l, 1+r])
        if left and not right:
            self.length = max( [self.length, 1+l] )
            return 1+l
        if not left and right:
            self.length = max( [self.length, 1+r] )
            return 1+r
        else:
            self.length = max( [self.length, 1] )
            return 1


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

LeetCode 298. Binary Tree Longest Consecutive Sequence

Given a binary tree, find the length of the longest consecutive sequence path.The path refers to any...

【leetcode】longest-consecutive-sequence

Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F...
  • WX_East
  • WX_East
  • 2017年06月18日 09:31
  • 105

LeetCode 之 Longest Consecutive Sequence

原题: Given an unsorted array of integers, find the length of the longest consecutive elements se...

LeetCode Longest Consecutive Sequence

https://oj.leetcode.com/problems/longest-consecutive-sequence/ Longest Consecutive Sequence...

【LeetCode】Longest Consecutive Sequence 解题报告

【题目】 Given an unsorted array of integers, find the length of the longest consecutive elements s...
  • ljiabin
  • ljiabin
  • 2015年01月04日 21:51
  • 1040

LeetCode 128. Longest Consecutive Sequence

题目描述: Given an unsorted array of integers, find the length of the longest consecutive elements seq...

leetcode_question_128 Longest Consecutive Sequence

Given an unsorted array of integers, find the length of the longest consecutive elements sequence. ...
  • doc_sgl
  • doc_sgl
  • 2013年09月20日 14:24
  • 1256

【LeetCode】128. Longest Consecutive Sequence

128. Longest Consecutive Sequence

Longest Consecutive Sequence -- leetcode

Given an unsorted array of integers, find the length of the longest consecutive elements sequence. ...

HashMap 实例[leetcode]Longest Consecutive Sequence

HashMap的一些方法: HashMap map = new HashMap(); 1、提取map中key对应的value值:value = map.get(key); 2、放入新的元素:ma...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Leetcode: Binary Tree Longest Consecutive Sequence
举报原因:
原因补充:

(最多只允许输入30个字)