zoukankan      html  css  js  c++  java
  • 【leetcode】102:二叉树的层序遍历

    这个题目比较基础,可以对树的广度优先搜索的模版稍作更改,就可以得到我们的答案了。题目如下:

     解答如下:

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def levelOrder(self, root: TreeNode) -> List[List[int]]:
            if not root: return []
            #跟结点入queue
            queue = [root]
            res = []
            while queue:
                res.append([node.val for node in queue])
                #存储当前层的孩子节点列表
                ll = []
                #对当前层的每个节点遍历
                for node in queue:
                    #如果左子节点存在,入队列
                    if node.left:
                        ll.append(node.left)
                    #如果右子节点存在,入队列
                    if node.right:
                        ll.append(node.right)
                #后把queue更新成下一层的结点,继续遍历下一层
                queue = ll
            return res

    方法二:

    class Solution:
        def levelOrder(self, root: TreeNode) -> List[List[int]]:
            if not root: return []
            res = []
            queue = [root]
            while queue:
                tmp = []
                for _ in range(len(queue)):
                    node = queue.pop(0)
                    tmp.append(node.val)
                    if node.left:
                        queue.append(node.left)
                    if node.right:
                        queue.append(node.right)
                res.append(tmp)
            return res

    对二叉树层序遍历的模版如下:

    def BFS(root):
        if root:
            res = []
            queue = [root]
            while queue:
                currentNode = queue.pop(0)
                res.append(currentNode.val)
                if currentNode.left:
                    queue.append(currentNode.left)
                if currentNode.right:
                    queue.append(currentNode.right)
        return res
  • 相关阅读:
    多版本node安装197
    linux 测试麦克风197
    解决linux写入ntfs盘时报错:只读文件系统197
    freemarker 解析纯json字符串197
    manjaro mysql安装197
    manjaro安装微信197
    manjaro 安装输入法197
    strings包 — 汇总
    proc 目录介绍
    learning、trying、teaching
  • 原文地址:https://www.cnblogs.com/geeksongs/p/15395054.html
Copyright © 2011-2022 走看看