美文网首页
二叉树的层序遍历

二叉树的层序遍历

作者: 梁森的简书 | 来源:发表于2021-02-23 22:42 被阅读0次

思路

创建两个队列A、B,先讲根节点放入队列A中,然后循环遍历队列A,并将A中的节点出队到队列B中,最终队列B中的所有节点出队就是层序遍历的结果。
遍历A的方式:先将节点出队到队列B中,再判断该节点是否有左右子树,如果有就分别将其入队到队列A中。

代码

// 层序遍历
    func layerErgodic() -> Queue<String> {
        var keyQueue = Queue<String>()
        var nodeQueue = Queue<TreeNode>()
        nodeQueue.enQueue(item: root!)
        while !nodeQueue.isEmpty() {
            let node = nodeQueue.deQueue()
            keyQueue.enQueue(item: node!.key)
            if node?.left != nil {
                nodeQueue.enQueue(item: (node?.left)!)
            }
            if node?.right != nil {
                nodeQueue.enQueue(item: (node?.right)!)
            }
        }
        return keyQueue
    }

demo地址:https://github.com/yangguanghei/studyDateStructure

相关文章

网友评论

      本文标题:二叉树的层序遍历

      本文链接:https://www.haomeiwen.com/subject/ukadfltx.html