From c8e4f3ba14ca63e62a0d5a5a989a2b53af964c89 Mon Sep 17 00:00:00 2001 From: bumpsoo Date: Sat, 21 Dec 2024 01:49:38 +0900 Subject: [PATCH] https://leetcode.com/problems/reverse-odd-levels-of-binary-tree --- medium/reverse_odd_levels_of_binray_tree.py | 23 +++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 medium/reverse_odd_levels_of_binray_tree.py diff --git a/medium/reverse_odd_levels_of_binray_tree.py b/medium/reverse_odd_levels_of_binray_tree.py new file mode 100644 index 0000000..e21ec24 --- /dev/null +++ b/medium/reverse_odd_levels_of_binray_tree.py @@ -0,0 +1,23 @@ +# https://leetcode.com/problems/reverse-odd-levels-of-binary-tree +from typing import Optional + +class TreeNode: + def __init__(self, val=0, left=None, right=None): + self.val = val + self.left = left + self.right = right +class Solution: + def reverseOddLevels(self, root: Optional[TreeNode]) -> Optional[TreeNode]: + def traverse(left: Optional[TreeNode], right: Optional[TreeNode], depth: int): + if left is None or right is None: + return + if depth % 2 == 1: + tmp = left.val + left.val = right.val + right.val = tmp + traverse(left.left, right.right, depth + 1) + traverse(left.right, right.left, depth + 1) + if root is not None: + traverse(root.left, root.right, 1) + return root +