http://www.lintcode.com/zh-cn/problem/subtree/
"""
Definition of TreeNode:
class TreeNode:
def __init__(self, val):
self.val = val
self.left, self.right = None, None
"""
class Solution:
preoder_list = []
inoder_list = []
# @param T1, T2: The roots of binary tree.
# @return: True if T2 is a subtree of T1, or false.
def pre_Traverse_to_list(self, node):
if(node != None):
# print Solution.preoder_list
Solution.preoder_list.append(str(node.val))
self.pre_Traverse_to_list(node.left)
self.pre_Traverse_to_list(node.right)
return Solution.preoder_list
def in_Traverse_to_list(self, node):
if(node != None):
self.in_Traverse_to_list(node.left)
Solution.inoder_list.append(str(node.val))
self.in_Traverse_to_list(node.right)
return Solution.inoder_list
def isSubtree(self, T1, T2):
T1 = (''.join(self.pre_Traverse_to_list(T1)),''.join(self.in_Traverse_to_list(T1)))
Solution.preoder_list = []
Solution.inoder_list = []
T2 = (''.join(self.pre_Traverse_to_list(T2)),''.join(self.in_Traverse_to_list(T2)))
if set(T1[0]) == 9 and set(T2[0]) == 9:
return False
if (T2[0] in T1[0]) and ( T2[1] in T1[1]) :
return True
else:
return False
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.