LeetCode-二叉树的层次遍历

5 篇文章 0 订阅
4 篇文章 0 订阅

LeetCode-二叉树的层次遍历

题目描述

给你一个二叉树,请你返回其按层序遍历得到的节点值。 (即逐层地,从左到右访问所有节点)。
如:
二叉树:[3,9,20,null,null,15,7]
在这里插入图片描述
返回其层序遍历结果:
在这里插入图片描述

思路

将树的各层节点放在数组里,再遍历数组获取子节点的值,最主要的是把各层的节点单独放在一个列表里存起来。(开始没考虑单独存一行的数据,出错了以后才重新修改)

代码实现

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):
    def levelOrder(self, root):
        """
        :type root: TreeNode
        :rtype: List[List[int]]
        """
        Inorder_List=[]
        if not root:
            return []
        else:
            temp_q=[]
            temp_q.append(root)
            Inorder_List.append([root.val])
            while len(temp_q)!=0:
                level_value=[]
                temp_q1=[]
                for a in temp_q:         
                    if a.left:
                        temp_q1.append(a.left)
                        level_value.append(a.left.val)
                    if a.right:
                        temp_q1.append(a.right)
                        level_value.append(a.right.val)
                temp_q=temp_q1
                if len(level_value)!=0:
                    Inorder_List.append(level_value)
                
            return Inorder_List

测试结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值