1. 程式人生 > >[leetcode: Python]257. Binary Tree Paths

[leetcode: Python]257. Binary Tree Paths

關於Valid Anagram這一題,補充一個方法,效能109ms:

from collections import Counter

class Solution(object):
    def isAnagram(self, s, t):
        """
        :type s: str
        :type t: str
        :rtype: bool
        """

        s_counter = Counter(s)
        t_counter = Counter(t)

        return s_counter == t_counter

這裡寫圖片描述

題目:
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"]

題意:
找出二叉樹的所有路徑。

方法一:效能55ms

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
# self.val = x # self.left = None # self.right = None class Solution(object): def binaryTreePaths(self, root): """ :type root: TreeNode :rtype: List[str] """ self.ans = [] if root == None: return self.ans def
dfs(root, path):
if root and root.left is None and root.right is None: self.ans.append(path) elif root.left: root.left = dfs(root.left, path + '->' + str(root.left.val)) elif root.right: root.right = dfs(root.right, path + '->' + str(root.right.val)) dfs(root, root.val) return self.ans