102_二叉树的层次遍历

时光怂恿深爱的人放手 提交于 2019-12-16 22:42:50
"""
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
例如:
给定二叉树: [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7
   
返回其层次遍历结果:
[
  [3],
  [9,20],
  [15,7]
]
"""


from TreeNode import TreeNode

# 递归
def levelOrder(root):
    ans = []
    def helper(temp):
        arr = []
        ans_ = []
        if not temp[-1]:
            return
        for node in temp[-1]:
            if node:
                ans_.append(node.val)
            if node.left :
                arr.append(node.left)
            if node.right:
                arr.append(node.right)
        temp.append(arr)
        ans.append(ans_)
        helper(temp)

    helper([[root]])
    return ans


node1 = TreeNode(3)
node2 = TreeNode(9)
node3 = TreeNode(20)
node4 = TreeNode(15)
node5 = TreeNode(7)

node1.left = node2
node1.right = node3

node3.left = node4
node3.right = node5

print(levelOrder(node1))



在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!