Leetcode刷题记录-20181018

Tree操作

# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None

100.Same Tree    

递归,注意判断条件,①如果均为空树②如果都不为空树③如果一方为空树

 1 class Solution:
 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         if p and q:
11             if p.val != q.val:
12                 return False
13             else:
14                 return self.isSameTree(p.left,q.left) and self.isSameTree(p.right,q.right)
15         else:
16             return False
View Code

101.Symmetric Tree    

与Same Tree算法类似

 1 class Solution:
 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         if p and q:
11             if p.val != q.val:
12                 return False
13             else:
14                 return self.isSametree(p.right,q.left) and self.isSametree(p.left,q.right)
15         else:
16             return False
17          
18     def isSymmetric(self, root):
19         """
20         :type root: TreeNode
21         :rtype: bool
22         """
23         if not root: return True
24         p = root.left
25         q = root.right
26         if not p and not q: return True
27         if p and q:
28             if p.val == q.val:
29                 return self.isSametree(p.left,q.right) and self.isSametree(p.right,q.left)
30             else:
31                 return False
32         else:
33             return False
View Code

104.Maximum Depth of Binary Tree 

递归,第0层的最大深度等于max(第1层左孩子的最大深度+1,第一层右孩子的最大深度)

 1 class Solution:
 2     def maxDepth(self, root):
 3         """
 4         :type root: TreeNode
 5         :rtype: int
 6         """
 7         depth = 0
 8         if not root:
 9             return depth
10         else:
11             p = root.left
12             q = root.right
13             if not p and not q:
14                 return 1
15             else:
16                 return max(self.maxDepth(p)+1,self.maxDepth(q)+1)
View Code

 

转载于:https://www.cnblogs.com/autoyzz/p/9811297.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值