资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Python怎么实现二叉树按层级遍历-创新互联

这篇文章主要讲解了“Python怎么实现二叉树按层级遍历”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么实现二叉树按层级遍历”吧!

成都创新互联长期为近千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为鹿泉企业提供专业的做网站、网站制作,鹿泉网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

Python实现二叉树按层级遍历,看起来有点复杂。如下图,如果一个二叉树有多层,则从上到下,每层按从左到右遍历。

每层放在一个队列,整体返回一个多组队列的队列。

Python怎么实现二叉树按层级遍历

看起来复杂,其实实现反而很简单;不用栈,就用一个节点队列放当前层级节点,遍历当前层级节点,读取值放入一个读取队列,读取当前节点的子节点放入另一个队列;当当前队列节点遍历完成后,使用下一层节点对用,相当于进入下一层,遍历刚刚生成子节点队列,如此反复直到节点队列为空结束。

代码如下

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    def levelOrder(self, root: TreeNode) -> List[List[int]]:
        traversalList = []
        nodeList = []
        if root != None:
            nodeList.append(root)
            while nodeList != []:
                currentLevelVal = []
                currentNodeList = []
                for node in nodeList:
                    currentLevelVal.append(node.val)
                    if node.left != None:
                        currentNodeList.append(node.left)
                    if node.right != None:
                        currentNodeList.append(node.right)
                traversalList.append(currentLevelVal)
                nodeList = currentNodeList
        return traversalList

感谢各位的阅读,以上就是“Python怎么实现二叉树按层级遍历”的内容了,经过本文的学习后,相信大家对Python怎么实现二叉树按层级遍历这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


分享标题:Python怎么实现二叉树按层级遍历-创新互联
分享链接:http://cdkjz.cn/article/ceciei.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220