• 算法 dfs 二叉树的所有路径


    480. 二叉树的所有路径

    给一棵二叉树,找出从根节点到叶子节点的所有路径。

    Example

    样例 1:

    输入:{1,2,3,#,5}
    输出:["1->2->5","1->3"]
    解释:
       1
     /   
    2     3
     
      5
    

    样例 2:

    输入:{1,2}
    输出:["1->2"]
    解释:
       1
     /   
    2     

    """
    Definition of TreeNode:
    class TreeNode:
        def __init__(self, val):
            self.val = val
            self.left, self.right = None, None
    """
    
    class Solution:
        """
        @param root: the root of the binary tree
        @return: all root-to-leaf paths
        """
        def binaryTreePaths(self, root):
            # write your code here
            path = []
            result = []
            self.dfs(root, path, result)
            return result
        
        def dfs(self, root, path, result):
            if not root:
                return
            
            path.append(str(root.val))
            if root.left is None and root.right is None:
                result.append("->".join(path))
            else:            
                self.dfs(root.left, path, result)
                self.dfs(root.right, path, result)
            path.pop()
    

      

    还有使用分治实现的,jiuzhang给的:

    class Solution:
        """
        @param root: the root of the binary tree
        @return: all root-to-leaf paths
        """
        def binaryTreePaths(self, root):
            if root is None:
                return []
                
            if root.left is None and root.right is None:
                return [str(root.val)]
    
            leftPaths = self.binaryTreePaths(root.left)
            rightPaths = self.binaryTreePaths(root.right)
            
            paths = []
            for path in leftPaths + rightPaths:
                paths.append(str(root.val) + '->' + path)
                
            return paths
    

      

     
  • 相关阅读:
    [转]项目需求范围管理
    JavaScript 王者归来
    [转]大文件上传组件
    [转]使用vs2005自带的sql2005 express
    JS判断Caps Lock
    [转]Web项目管理思考
    [转]JS严格验证身份证
    两分钟用C#搭建IE BHO勾子, 窃取密码
    asp.net性能提升十个方法(Microsoft)
    [转]Asp.net 将js文件打包进dll 方法
  • 原文地址:https://www.cnblogs.com/bonelee/p/11610113.html
Copyright © 2020-2023  润新知