Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save codetalks-new/950ebc80c22584c142f7 to your computer and use it in GitHub Desktop.
Save codetalks-new/950ebc80c22584c142f7 to your computer and use it in GitHub Desktop.
Binary Tree Level Order Traversal leetcode https://leetcode.com/problems/binary-tree-level-order-traversal/ Swift solution
func levelOrderTraversal(root:TreeNode) -> [[Int]]{
var outerArr = [[Int]]()
var levelNode = [TreeNode]()
var nextLevelNode = [TreeNode]()
levelNode.append(root)
var innerArr = [Int]()
while !levelNode.isEmpty{
let currentNode = levelNode.removeAtIndex(0)
innerArr.append(currentNode.val)
if let left = currentNode.left{
nextLevelNode.append(left)
}
if let right = currentNode.right{
nextLevelNode.append(right)
}
if levelNode.isEmpty{
let arr = innerArr
outerArr.append(arr)
levelNode += nextLevelNode
nextLevelNode.removeAll()
innerArr.removeAll()
}
}
return outerArr
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment