Skip to content

Instantly share code, notes, and snippets.

@Abhishek9634
Created March 29, 2018 09:18
Show Gist options
  • Save Abhishek9634/cf333d1fbc57b0a3f9804d42a73fd2c9 to your computer and use it in GitHub Desktop.
Save Abhishek9634/cf333d1fbc57b0a3f9804d42a73fd2c9 to your computer and use it in GitHub Desktop.
extension BinaryTree {
func levelOrder() {
guard let node = self.rootNode else { return }
self.queue.enqueue(item: node)
while !self.queue.isEmpty {
guard let dequeueNode = self.queue.dequeue() else { break }
if let leftNode = dequeueNode.leftNode {
self.queue.enqueue(item: leftNode)
}
if let rightNode = dequeueNode.rightNode {
self.queue.enqueue(item: rightNode)
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment