본문 바로가기
Algorithm/Study

Swift - BFS iteration on Binary Tree

by HaningYa 2020. 7. 9.
728x90

[1,3,2,5,3,null,9]

func bfs(_ root: TreeNode?) -> Int {
        if root == nil {
            return 0
        }
        var maxWidth = 0
        var queue : [TreeNode] = []
        queue.append(root!)
        while(!queue.isEmpty){
            var count = queue.count
            maxWidth = max(maxWidth,count)
            while(count > 0){
                var tmp = queue.removeFirst()
                print(tmp.val)
                if(tmp.left != nil){
                    queue.append(tmp.left!)
                }
                if(tmp.right != nil){
                    queue.append(tmp.right!)
                }
                count -= 1
            }
            
        }
        return maxWidth
    }

output: 1 3 2 5 3 9

728x90

'Algorithm > Study' 카테고리의 다른 글

Java 중복유무 순열 조합  (0) 2020.07.11
Swift - 순열(Permutation)  (0) 2020.07.11
Swift 배열 처리  (1) 2020.07.04
📕 잠깐 내가 이해한게 맞는지 정리  (0) 2020.06.19
😈 Greedy & Prims Algorithm (feat MST)  (0) 2020.06.18

댓글