일상용/연습장

[leetcode] 3-7회차

alpakaka 2025. 5. 21. 17:26

https://leetcode.com/problems/binary-tree-level-order-traversal/description/?envType=study-plan-v2&envId=top-interview-150

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):
    def levelOrder(self, root):
        """
        :type root: Optional[TreeNode]
        :rtype: List[List[int]]
        """
        
        if not root:
            return []

        q = collections.deque()
        q.append(root)
        ans = []

        while q:
            qlen = len(q)
            temp = []
            for _ in range(qlen):
                curr = q.popleft()
                temp.append(curr.val)
                if curr.left:    
                    q.append(curr.left)
                if curr.right:    
                    q.append(curr.right)
            ans.append(temp)

        return ans

 

 

https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/?envType=study-plan-v2&envId=top-interview-150

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):
    def zigzagLevelOrder(self, root):
        """
        :type root: Optional[TreeNode]
        :rtype: List[List[int]]
        """

        if not root:
            return []

        q = collections.deque()
        q.append(root)
        ans = []
        even_level = False

        while q:
            qlen = len(q)
            temp = []
            for _ in range(qlen):
                curr = q.popleft()
                temp.append(curr.val)
                if curr.right:    
                    q.append(curr.right)
                if curr.left:    
                    q.append(curr.left)
            if not even_level:
                temp = temp[::-1]
            ans.append(temp)
            even_level = not even_level

        return ans

 

 

 

댓글수0