[leetcode: Python]257. Binary Tree Paths
阿新 • • 發佈:2019-01-26
關於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