Leetcode # 2415. Reverse Odd Levels of Binary Tree
- 2024.12.20
- ★★ Medium LeetCode Perfect Binary Tree
Problem
https://leetcode.com/problems/reverse-odd-levels-of-binary-tree
Solution
Time Complexity: O(len(tree))
Space Complexity: O(len(tree))
(The input and output generally do not count towards the space complexity.)
class Solution:
def reverseOddLevels(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
nodes = [[root, 1]]
p = 0
while nodes[p][0].left:
nodes.append([nodes[p][0].left, nodes[p][1] + 1])
nodes.append([nodes[p][0].right, nodes[p][1] + 1])
p += 1
traversed = 0
for level in range(int(log2(len(nodes) + 1) + 0.1)):
nodes_n = 2 ** level
if level % 2 == 1:
for n in range(nodes_n // 2):
node_left = nodes[traversed + n][0]
node_right = nodes[traversed + nodes_n - n - 1][0]
node_left.val, node_right.val = node_right.val, node_left.val
traversed += nodes_n
return root
Last Updated on 2024/12/20 by A1go