오늘도 개발

51. Binary Tree Level Order Traversal(BFS) 본문

자료구조 & 알고리즘/Leetcode

51. Binary Tree Level Order Traversal(BFS)

Sueeeeeee 2022. 11. 29. 19:06

문제

이진 트리의 root 노드를 인수로 받아 level order traversal을 진행한 값을 반환하시오.

Input: root = [3,9,20,null,null,15,7]
Output: [[3],[9,20],[15,7]]

 

해결 방식

큐와 BFS로 해결.

for문을 이용하여 같은 level에 있는 노드의 수만큼 iterate.

from collections import deque

class Solution:
    def levelOrder(self, root):
        if not root:
            return []
        
        result = []
        queue = deque([root])
        
        while queue:
            levelLength = len(queue)
            levelNodes = []
            
            for i in range(levelLength):
                currentNode = queue.popleft()
                levelNodes.append(currentNode.val)
                
                if currentNode.left:
                    queue.append(currentNode.left)
                    
                if currentNode.right:
                    queue.append(currentNode.right)
                    
            result.append(levelNodes)
            
        return result