Skip to content

Commit f8cc1b3

Browse files
committed
Time: 7 ms (90.27%), Space: 20.6 MB (96.48%) - LeetHub
1 parent b6768aa commit f8cc1b3

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# time complexity: O(n)
2+
# space complexity: O(n)
3+
from collections import deque
4+
from typing import Optional
5+
6+
7+
class TreeNode:
8+
def __init__(self, val=0, left=None, right=None):
9+
self.val = val
10+
self.left = left
11+
self.right = right
12+
13+
14+
class Solution:
15+
def longestConsecutive(self, root: Optional[TreeNode]) -> int:
16+
if not root:
17+
return 0
18+
queue = deque([(root, 1)])
19+
result = 0
20+
while queue:
21+
node, count = queue.popleft()
22+
result = max(result, count)
23+
for nextNode in (node.left, node.right):
24+
if nextNode:
25+
if nextNode.val == node.val + 1:
26+
queue.append((nextNode, count + 1))
27+
else:
28+
queue.append((nextNode, 1))
29+
return result
30+
31+
32+
root = TreeNode(1)
33+
root.left = TreeNode(2)
34+
root.left.left = TreeNode(3)
35+
root.left.right = TreeNode(4)
36+
root.right = TreeNode(5)
37+
root.right.right = TreeNode(6)
38+
print(Solution().longestConsecutive(root))

0 commit comments

Comments
 (0)