码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 100. Same Tree

时间:2017-01-25 07:44:44      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:logs   etc   log   self   stack   style   blog   bsp   span   

思路1: 递归,如果 p = q, 那么判段 sameTree(p.left)==sameTree(q.left) and sameTree(p.right) = sameTree(q.right)

 1 class Solution(object):
 2     def isSameTree(self, p, q):
 3         """
 4         :type p: TreeNode
 5         :type q: TreeNode
 6         :rtype: bool
 7         """
 8         if not p and not q:
 9             return True
10         
11         if p and q:    
12             if p.val == q.val:
13                 return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
14             else:
15                 return False
16         
17         return False

 

思路二: 如果两个树相同,说明按照一定的方式遍历这两个树,应该得到一样的结果。这里用的方法是使用stack来实现先序遍历(pre-order)。注意pre-order遍历时是,root -> root.left -> root.right。所以push进stack的时候应该先push root.right再push root.left。

 1 class Solution(object):
 2     def isSameTree(self, p, q):
 3         """
 4         :type p: TreeNode
 5         :type q: TreeNode
 6         :rtype: bool
 7         """
 8         if p == None and q == None:
 9             return True
10         
11         stack = [(p, q)]
12         
13         while stack:
14             l, r = stack.pop()
15             
16             if l == None and r == None:
17                 continue
18             elif l and r and l.val == r.val:
19 
20                 stack.append((l.right, r.right)) 
21 
22                 stack.append((l.left, r.left))              
23             else:
24                 return False
25         
26         return True

 

Leetcode 100. Same Tree

标签:logs   etc   log   self   stack   style   blog   bsp   span   

原文地址:http://www.cnblogs.com/lettuan/p/6349026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!