LeetCode-广度优先搜索-Easy

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步




107. binary-tree-level-order-traversal-ii 二叉树的层次遍历II

解题思路:
广度优先 将node放入队列中 先进先出

class TreeNode(object):
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

def levelOrderBottom(root):
    """
    :type root: TreeNode
    :rtype: List[List[int]]
    """
    if not root:
        return []
    l =[]
    l.append((root,0))
    tmpl=[]
    tmp=0
    ret=[]
    while len(l)>0:
        v,level = l.pop(0)
        if tmp==level:
            tmpl.append(v.val)
        else:
            ret=[tmpl]+ret
            tmpl=[v.val]
            tmp=level
        if v.left:
            l.append((v.left,level+1))
        if v.right:
            l.append((v.right,level+1))

    ret =[tmpl]+ret
    return ret

别的题已在深度优先搜索提及 详见:https://blog.csdn.net/zkt286468541/article/details/83035716

猜你喜欢

转载自blog.csdn.net/zkt286468541/article/details/83961771