[LeetCode] 298. Binary Tree Longest Consecutive Sequence
Example 1:
Input:
1
\
3
/ \
2 4
\
5
Output: 3
Explanation: Longest consecutive sequence path is 3-4-5
, so return 3
.
Example 2:
Input:
2
\
3
/
2
/
1
Output: 2
Explanation: Longest consecutive sequence path is 2-3
, not 3-2-1
, so return 2
.
이 문제는 제가 DFS의 해법을 제시합니다. 마찬가지로 먼저 반복합니다.
시간 O(n)
공간 O(n)
1 /**
2 * Definition for a binary tree node.
3 * function TreeNode(val) {
4 * this.val = val;
5 * this.left = this.right = null;
6 * }
7 */
8 /**
9 * @param {TreeNode} root
10 * @return {number}
11 */
12 var longestConsecutive = function(root) {
13 return helper(root);
14 };
15
16 var helper = function(node, prev, count) {
17 if (!node) {
18 return count || 0;
19 }
20 if (node.val === prev + 1) {
21 count++;
22 } else {
23 count = 1;
24 }
25 let res = Math.max(
26 count,
27 helper(node.left, node.val, count),
28 helper(node.right, node.val, count)
29 );
30 return res;
31 };
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.