Binary Tree Longest Consecutive Sequence
题目地址:
https://leetcode.com/problems/binary-tree-longest-consecutive-sequence/#/description
题目:
解题思路:
这道题需要用到top-down的dfs,然后向下传length和parent指针。如果断了就要将length归零,然后再length++。
代码:
https://leetcode.com/problems/binary-tree-longest-consecutive-sequence/#/description
题目:
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.解题思路:
这道题需要用到top-down的dfs,然后向下传length和parent指针。如果断了就要将length归零,然后再length++。
代码:
public int longestConsecutive(TreeNode root) { if(root == null){ return 0; } return helper(root, 0, null); } private int helper(TreeNode root, int length, TreeNode parent){ if(root == null){ return 0; } if(parent == null || (parent.val + 1 != root.val)){ length = 0; } length++; int left = helper(root.left, length, root); int right = helper(root.right, length, root); return Math.max(Math.max(left, right), length); }

Comments
Post a Comment