Skip to content

Commit cf2dab7

Browse files
committed
Binary Tree - medium - longest consecutive sequence implementation
1 parent e018fc2 commit cf2dab7

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Definition for a binary tree node.
2+
from typing import Optional
3+
4+
5+
class TreeNode:
6+
def __init__(self, val=0, left=None, right=None):
7+
self.val = val
8+
self.left = left
9+
self.right = right
10+
11+
12+
class TreeInfo:
13+
def __init__(self, val):
14+
self.max_length = val
15+
16+
17+
class Solution:
18+
def longestConsecutive(self, root: Optional[TreeNode]) -> int:
19+
20+
def dfs(node, parent, current_length, treeInfo):
21+
if not node:
22+
return
23+
if parent is not None and parent.val + 1 == node.val:
24+
current_length += 1
25+
else:
26+
current_length = 1
27+
treeInfo.max_length = max(treeInfo.max_length, current_length)
28+
dfs(node.left, node, current_length, treeInfo)
29+
dfs(node.right, node, current_length, treeInfo)
30+
31+
ti = TreeInfo(0)
32+
dfs(root, None, 0, ti)
33+
return ti.max_length

0 commit comments

Comments
 (0)