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

二叉树的层序遍历

作者: 梁森的简书 | 来源:发表于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