Skip to content

Commit 3c1daa4

Browse files
committed
Apr 04
1 parent 27dfd6f commit 3c1daa4

File tree

2 files changed

+56
-2
lines changed

2 files changed

+56
-2
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
from typing import Optional
2+
3+
4+
# Definition for a binary tree node.
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 Solution:
13+
def lcaDeepestLeaves(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
14+
15+
def postorder(node: Optional[TreeNode]) -> tuple[int, Optional[TreeNode]]:
16+
if node is None:
17+
return 0, None
18+
19+
left_depth, left_lca = postorder(node.left)
20+
right_depth, right_lca = postorder(node.right)
21+
22+
if left_depth > right_depth:
23+
return left_depth + 1, left_lca
24+
elif right_depth > left_depth:
25+
return right_depth + 1, right_lca
26+
return left_depth + 1, node
27+
28+
return postorder(root)[1]
29+
30+
31+
def main():
32+
root = TreeNode(3)
33+
root.left = TreeNode(5)
34+
root.right = TreeNode(1)
35+
root.left.left = TreeNode(6)
36+
root.left.right = TreeNode(2)
37+
root.left.right.left = TreeNode(7)
38+
root.left.right.right = TreeNode(4)
39+
root.right.left = TreeNode(0)
40+
root.right.right = TreeNode(8)
41+
assert Solution().lcaDeepestLeaves(root) == root.left.right
42+
43+
root = TreeNode(1)
44+
assert Solution().lcaDeepestLeaves(root) == root
45+
46+
root = TreeNode(0)
47+
root.left = TreeNode(1)
48+
root.right = TreeNode(3)
49+
root.left.right = TreeNode(2)
50+
assert Solution().lcaDeepestLeaves(root) == root.left.right
51+
52+
53+
if __name__ == '__main__':
54+
main()

2025-04-April-LeetCoding-Challenge/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
| April 01 | [2140. Solving Questions With Brainpower](https://leetcode.com/problems/solving-questions-with-brainpower/) | Medium | Solved |
88
| April 02 | [2873. Maximum Value of an Ordered Triplet I](https://leetcode.com/problems/maximum-value-of-an-ordered-triplet-i/) | Easy | Solved |
99
| April 03 | [2874. Maximum Value of an Ordered Triplet II](https://leetcode.com/problems/maximum-value-of-an-ordered-triplet-ii/) | Medium | Solved |
10-
| April 04 | []() | | |
10+
| April 04 | [1123. Lowest Common Ancestor of Deepest Leaves](https://leetcode.com/problems/lowest-common-ancestor-of-deepest-leaves/) | Medium | Solved |
1111
| April 05 | []() | | |
1212
| April 06 | []() | | |
1313
| April 07 | []() | | |
@@ -40,5 +40,5 @@
4040
| Level | Problems | Solved | Unsolved |
4141
| --- | --- | --- | --- |
4242
| Easy | 1 | 1 | 0 |
43-
| Medium | 2 | 2 | 0 |
43+
| Medium | 3 | 3 | 0 |
4444
| Hard | 0 | 0 | 0 |

0 commit comments

Comments
 (0)