首页 > 其他分享 >leedcode-二叉树的所有路径

leedcode-二叉树的所有路径

时间:2024-03-23 18:55:33浏览次数:13  
标签:right cur 路径 leedcode stack 二叉树 path 节点

迭代法-深度优先搜索

class Solution:
    def binaryTreePaths(self, root: Optional[TreeNode]) -> List[str]:
        if not root:
            return []  # 如果根节点为空,直接返回空列表
        
        stack = [(root, str(root.val))]  # 初始化栈,栈中存储的是节点和对应的路径
        res = []  # 用于存储所有路径
        
        while stack:
            cur, path = stack.pop()  # 弹出栈顶节点及其对应的路径
            
            if not cur.left and not cur.right:  # 如果当前节点是叶子节点
                res.append(path)  # 将当前路径添加到结果列表中
            
            if cur.right:  # 如果右子节点存在,则将右子节点及路径入栈
                stack.append((cur.right, path + "->" + str(cur.right.val)))
            
            if cur.left:  # 如果左子节点存在,则将左子节点及路径入栈
                stack.append((cur.left, path + "->" + str(cur.left.val)))
        
        return res  # 返回所有路径列表

 

标签:right,cur,路径,leedcode,stack,二叉树,path,节点
From: https://www.cnblogs.com/yyyjw/p/18091537

相关文章

  • leedcode-有效的字母异位词
    自己写的,有字典很简单:classSolution:defisAnagram(self,s:str,t:str)->bool:#创建两个空字典来存储字符计数s_dic=dict()t_dic=dict()#遍历字符串s,计算每个字符出现的次数并存储在s_dic中foriins:......
  • 【python】写一个从指定路径读取xlsx的函数
    定义了一个名为read_xlsx的函数,从指定的路径(如果提供了路径)读取一个Excel文件并将其内容转换为pandas的DataFrame对象。#-*-coding:utf-8-*-#@Author:author_name#@Time:2024/3/2018:00importpandasaspddefread_xlsx(file_name,pat......
  • 一道平衡二叉树的求解
    最近在看二叉树的算法,我觉得有点迷迷糊糊,就是那种一看就会,一写就费。我有点很奇怪的感觉,就感觉二叉树的很多问题,其实在于一步一步的遍历(或者称为迭代,或者是递归方法),然后在遍历的基础上进行逻辑(业务)操作。首先在这讲一下递归。递归有三部曲:一.确定函数参数,确定函数的返回值......
  • 代码随想录算法训练营第十八天| 513. 找树左下角的值 112. 路径总和 113. 路径总和
    513.找树左下角的值https://leetcode.cn/problems/find-bottom-left-tree-value/description/publicintfindBottomLeftValue(TreeNoderoot){intval=0;Deque<TreeNode>deque=newArrayDeque<>();deque.offer(root);whi......
  • 【VRP问题】基于粒子群算法求解带时间窗的路径最短多车辆多任务车辆路径规划CTWVRP问
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 机器人路径规划:基于霸王龙优化算法(Tyrannosaurus optimization,TROA)的机器人路径规划(提
     一、机器人路径规划介绍移动机器人(Mobilerobot,MR)的路径规划是移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或局部已知的局部路径规划。随着科技的快速发展以及机器人的大量......
  • 解读国内首家AI Agent公测背后的商业落地路径
    随着大语言模型技术的日益成熟,国内科技巨头纷纷加快在AI Agent领域的布局和应用落地。凭借自身强大的技术积累和丰富的应用场景,推动AI Agent技术在各行各业的深度融合与创新应用。在AI Agent的落地应用上,目前科技巨头正借助已有AI技术平台集体发力,众多创业公司也在拼命......
  • 解读国内首家AI Agent公测背后的商业落地路径
     随着大语言模型技术的日益成熟,国内科技巨头纷纷加快在AIAgent领域的布局和应用落地。凭借自身强大的技术积累和丰富的应用场景,推动AIAgent技术在各行各业的深度融合与创新应用。在AIAgent的落地应用上,目前科技巨头正借助已有AI技术平台集体发力,众多创业公司也在拼命迎头......
  • 二叉树的创建,遍历与销毁
    二叉树的创建,遍历与销毁#include<iostream>#include<bits/stdc++.h>usingnamespacestd;structTreeNode{ charval;//数据域 TreeNode*lchild;//左子树 TreeNode*rchild;//右子树};classBiTree{ private: TreeNode*root;//根节点 public: BiTree()......
  • 1.基于搜索的路径规划:BFS、DFS、Dijkstra、A*、JPS
    1.概览可以对比不同算法的小动画 PathFinding.js(qiao.github.io)工作空间规划机器人有不同的形状和大小碰撞检测需要了解机器人的几何形状,耗时且难度大 我们希望将机器人表示为点,只需要把工作空间转换为配置空间C-obstacle,将原始的空间膨胀,这是一次性的C-space......