从上到下打印二叉树 II

作者: _阿南_ | 来源:发表于2020-02-26 22:04 被阅读0次

题目:

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
例如:
给定二叉树: [3,9,20,null,null,15,7],
    3
   / \
  9  20
    /  \
   15   7
返回其层次遍历结果:
[
  [3],
  [9,20],
  [15,7]
]
提示:
节点总数 <= 1000

题目的理解:

递归遍历二叉树

python实现

# Definition for a binary tree node.

from typing import List

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]]:
        if root is None:
            return list()
        
        result = list(list())
        group = list()
        group.append(root)

        self.reverse(group, result)

        return result

    def reverse(self, group: List, result: List[List[int]]):
        temp = list()
        nums = list()
        
        if group is None or len(group) == 0:
            return 
        
        for node in group:
            if node is not None:
                nums.append(node.val)
                
                if node.left is not None:
                    temp.append(node.left)
                if node.right is not None:
                    temp.append(node.right)
        result.append(nums)
        
        self.reverse(temp, result)
        
        

提交

Done

// END 每天跳跳舞,发现颈椎好了很多啊

相关文章

网友评论

    本文标题:从上到下打印二叉树 II

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