102. Binary Tree Level Order Traversal - Leetcode

  • Leetcode

102. Binary Tree Level Order Traversal

Given a binary tree, return the level order traversal of its nodes'values. (ie, from left to right, level by level).

For example:

Given binary tree [3,9,20,null,null,15,7],

    3

   / \

  9  20

    /  \

   15   7

 

return its level order traversal as:

[

  [3],

  [9,20],

  [15,7]

]

做道二叉树阿Q一下。。。

题意:按层来遍历二叉树,每一层的值为一个小集合 [一层] [二层] [三层]…  最后把所有层都输出为一个大集合。

思路:首先第一个集合是root自己,这是已知的,加到res里,之后的每一个集合都是基于前一个集合来进行遍历,判断是否有左孩子右孩子,用一个temp集合来保存本次遍历的节点,遍历完前一个集合后,把所得的temp集合追加到res里,接着遍历。

刚开始只保存的节点,输出的结果很奇怪,后来又在同样位置增加用于保存value值的最终结果集numres,以及临时保存某层节点的数值的numtemp (完全跟temp在一个位置), 一个是保存节点,为了下一次的遍历;一个是保存节点的数值,为了存到最终结果。

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def levelOrder(self, root):
        """
        :type root: TreeNode
        :rtype: List[List[int]]
        """
        #lis=[root]
        if root==None:
            return []
        res=[]
        res.append([root])
        numres=[[root.val]]
        i=0
        while True:
            temp=[]
            numtemp=[]
            for node in res[i]:
                if node.left != None:
                    temp.append(node.left)
                    numtemp.append(node.left.val)
                if node.right != None:
                    temp.append(node.right)
                    numtemp.append(node.right.val)
            if temp==[]:
                return numres
            else:
                res.append(temp)
                numres.append(numtemp)
                i+=1
            

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值