leetcode with python:257. Binary Tree Paths

题目:

Given the root of a binary tree, return all root-to-leaf paths in any order.

给定一棵binary tree,回传所有root-to-leaf路径

老样子用递迴来实作的树题

# 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 = rightclass Solution:    def binaryTreePaths(self, root: Optional[TreeNode]) -> List[str]:        record=[]        path=""        def ans(root,record,path):            if path=="":                path=path+str(root.val)            else:                path=path+"->"+str(root.val)                        if root.right:                ans(root.right,record,path)            if root.left:                ans(root.left,record,path)            if not root.right and not root.left:                record.append(path)                            return record                return ans(root,record,path)

从root开始设一个空字串(path)放入路过的点
开始往左往右走
随着递迴的深入path也会越来越多
当到达leaf时就停止纪录,此时path纪录的就是其中一个root-to-leaf路径
所以将path放入record再回传record
回传到最后record就纪录了所有root-to-leaf路径
最后执行时间29ms(faster than 97.51%)

那我们下题见


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章