12.25-----递归

N 叉树的后序遍历

python 复制代码
"""
# Definition for a Node.
class Node:
    def __init__(self, val=None, children=None):
        self.val = val
        self.children = children
"""

class Solution:
    def postorder(self, root: 'Node') -> List[int]:

        ans=[]
        def dfs_find (root):
            # 终止条件
            if root==None:
                return
            # 保存前序
            
            # 遍历子节点
            for child in root.children:
                # 进入下一层
                dfs_find(child)
            ans.append(root.val)

        dfs_find(root)
        return ans

N 叉树的前序遍历

python 复制代码
"""
# Definition for a Node.
class Node:
    def __init__(self, val=None, children=None):
        self.val = val
        self.children = children
"""

class Solution:
    def preorder(self, root: 'Node') -> List[int]:
        # 保存结果数组
        ans=[]
        def dfs_find (root):
            # 终止条件
            if root==None:
                return
            # 保存前序
            ans.append(root.val)
            # 遍历子节点
            for child in root.children:
                # 进入下一层
                dfs_find(child)

        dfs_find(root)
        return ans

N 叉树的层序遍历

python 复制代码
"""
# Definition for a Node.
class Node(object):
    def __init__(self, val=None, children=None):
        self.val = val
        self.children = children
"""
    # 广度优先搜索

class Solution(object):
    def levelOrder(self, root):
        """
        :type root: Node
        :rtype: List[List[int]]
        """
        # root 为空返回
        if not root:
            return[]
        ans=list()
        # 队列---root
        q=deque([root])

        # 广度搜索
        while q:
            cnt = len (q)
            # 深度
            level= list()
            for _ in range (cnt):
                cur=q.popleft()
                level.append(cur.val)
                for child in cur.children:
                    q.append(child)
            ans.append(level)
        return ans
相关推荐
傻啦嘿哟13 分钟前
如何使用 Python 开发一个简单的文本数据转换为 Excel 工具
开发语言·python·excel
大数据编程之光17 分钟前
Flink Standalone集群模式安装部署全攻略
java·大数据·开发语言·面试·flink
初九之潜龙勿用17 分钟前
C#校验画布签名图片是否为空白
开发语言·ui·c#·.net
B站计算机毕业设计超人19 分钟前
计算机毕业设计SparkStreaming+Kafka旅游推荐系统 旅游景点客流量预测 旅游可视化 旅游大数据 Hive数据仓库 机器学习 深度学习
大数据·数据仓库·hadoop·python·kafka·课程设计·数据可视化
Dola_Pan35 分钟前
C语言:数组转换指针的时机
c语言·开发语言·算法
ExiFengs35 分钟前
实际项目Java1.8流处理, Optional常见用法
java·开发语言·spring
paj12345678936 分钟前
JDK1.8新增特性
java·开发语言
IT古董43 分钟前
【人工智能】Python在机器学习与人工智能中的应用
开发语言·人工智能·python·机器学习
繁依Fanyi1 小时前
简易安卓句分器实现
java·服务器·开发语言·算法·eclipse
湫ccc1 小时前
《Python基础》之pip换国内镜像源
开发语言·python·pip