동까의 코딩

[99클럽] 14일차 TIL 본문

문제 풀이/99클럽

[99클럽] 14일차 TIL

동까의 코딩 2024. 6. 3. 22:22
반응형

Leetcode에서 그래프 문제를 풀어보았습니다.

 

https://leetcode.com/problems/reverse-odd-levels-of-binary-tree/description/

 

 

class Solution:
    def reverseOddLevels(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
        nodes = []
        level = [root]
        level_idx = 0
        while level:
            if level_idx % 2 == 0:
                nodes.append(level)
            else:
                nodes.append(level[::-1])
                level = [child for node in level for child in (node.left, node.right) if child]
                level_idx += 1
        
        for i in range(len(nodes) -1):
            for j in range(len(nodes[i])):
                nodes[i][j].left = nodes[i+1][2 * j]
                nodes[i][j].right = nodes[i+1][2 * j + 1]
        return nodes[0][0]
    
    def reverseOddLevels(self, root: Optional[TreeNode]) -> Optional[TreeNode]:

        def worker(node1, node2, level):
            if not node1 and not node2:
                return
            else:
                if level % 2 != 0:
                    node1.val, node2.val = node2.val, node1.val
                
                worker(node1.left, node2.right, level + 1)
                worker(node1.right, node2.left, level + 1)
        worker(root.left, root.right, 1)
        return root

 

아직도 리트코드 문제풀이가 어려우니.. 더 풀어봐야겠다.

반응형

'문제 풀이 > 99클럽' 카테고리의 다른 글

[99클럽] 16일차 TIL  (0) 2024.06.05
[99클럽] 15일차 TIL  (0) 2024.06.04
[99클럽] 13일차 TIL  (0) 2024.06.02
[99클럽] 12일차 TIL  (0) 2024.06.01
[99클럽] 11일차 TIL  (0) 2024.05.31