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