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
    

      

     
  • 相关阅读:
    用户数据报协议---UDP
    斐波那契数列
    从尾到头打印链表
    Mybatis三种查询方式
    Mybatis配置
    字典的用法
    遍历列表、切片、定义元组
    与列表相关知识
    python一些方法总结
    计算机的容量
  • 原文地址:https://www.cnblogs.com/bonelee/p/11610113.html
Copyright © 2011-2022 走看看