博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 257. Binary Tree Paths
阅读量:4314 次
发布时间:2019-06-06

本文共 1671 字,大约阅读时间需要 5 分钟。

Given a binary tree, return all root-to-leaf paths.

For example, given the following binary tree:

 

1 /   \2     3 \  5

All root-to-leaf paths are:

["1->2->5", "1->3"]

本题可以用DFS或者BFS。

解法一: DFS

class Solution(object):    def binaryTreePaths(self, root):        """        :type root: TreeNode        :rtype: List[str]        """        if not root:            return []                    result = []        self.dfs(root, result, [str(root.val)])        return result            def dfs(self, root, result, path):        if root.left is None and root.right is None:            result.append('->'.join(path))            return                                if root.right:            path.append(str(root.right.val))            self.dfs(root.right, result, path)            path.pop()        if root.left:            path.append(str(root.left.val))            self.dfs(root.left, result, path)            path.pop()

 

这个解法中需要注意的是current path的初始值是[str(root.val)]而不是。这个很类似的解法使用了pop。

 

如果要不使用pop的话

class Solution(object):    def binaryTreePaths(self, root):        """        :type root: TreeNode        :rtype: List[str]        """        if not root:            return []                    result = []        self.dfs(root, result, [str(root.val)])        return result            def dfs(self, root, result, path):        if root.left is None and root.right is None:            result.append('->'.join(path))            return                                if root.right:            self.dfs(root.right, result, path+[str(root.right.val)])        if root.left:            self.dfs(root.left, result, path+[str(root.left.val)])

 

转载于:https://www.cnblogs.com/lettuan/p/6224513.html

你可能感兴趣的文章
005---书籍添加和编辑的提交数据
查看>>
使用case语句给字体改变颜色
查看>>
JAVA基础-多线程
查看>>
面试题5:字符串替换空格
查看>>
JSP九大内置对象及四个作用域
查看>>
ConnectionString 属性尚未初始化
查看>>
数据结构-栈 C和C++的实现
查看>>
MySQL基本命令和常用数据库对象
查看>>
poj 1222 EXTENDED LIGHTS OUT(位运算+枚举)
查看>>
进程和线程概念及原理
查看>>
Lucene、ES好文章
查看>>
android 生命周期
查看>>
jquery--this
查看>>
MySQL 5.1参考手册
查看>>
TensorFlow安装流程(GPU加速)
查看>>
OpenStack的容器服务体验
查看>>
BZOJ1443: [JSOI2009]游戏Game
查看>>
【BZOJ 4059】 (分治暴力|扫描线+线段树)
查看>>
BZOJ 1066 蜥蜴(网络流)
查看>>
提高批量插入数据的方法
查看>>