給出兩棵二叉樹,每個(gè)節(jié)點(diǎn)有一個(gè)數(shù)值,問總左向右輸出所有葉子結(jié)點(diǎn)的值組成的數(shù)列,兩棵樹是否輸出一樣
簡(jiǎn)單DFS,遇到葉子就記錄值,一開始想當(dāng)然的所有數(shù)字轉(zhuǎn)string拼一起,但是這樣不能區(qū)分6 17 4和6 1 7 4,所以每次拼接的時(shí)候數(shù)值左右兩邊各多加一個(gè)空格
1 #872
2 #Runtime: 36 ms
3 #Memory: 13.5 MB
4
5 # Definition for a binary tree node.
6 # class TreeNode(object):
7 # def __init__(self, val=0, left=None, right=None):
8 # self.val = val
9 # self.left = left
10 # self.right = right
11 class Solution(object):
12 def leafSimilar(self, root1, root2):
13 """
14 :type root1: TreeNode
15 :type root2: TreeNode
16 :rtype: bool
17 """
18 def DFS(r):
19 if not r:
20 return ''
21 if not r.left and not r.right:
22 return ' ' + str(r.val) + ' '
23 return DFS(r.left) + DFS(r.right)
24 return DFS(root1) == DFS(root2)