zoukankan      html  css  js  c++  java
  • 算法 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
    

      

     
  • 相关阅读:
    python基础学习1-函数相关
    python基础学习1-SET 集合
    Linux命令学习笔记1
    python基础学习1-字典的使用
    python基础学习1-列表使用
    Jzoj4743 积木
    Jzoj4786 小a的强迫症
    Jzoj4746 树塔狂想曲
    Jzoj5246 Trip
    Jzoj5245 Competing Souls
  • 原文地址:https://www.cnblogs.com/bonelee/p/11610113.html
Copyright © 2011-2022 走看看