赞
踩
输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)
class Solution:
def FindFirstCommonNode(self, pHead1, pHead2):
p1,p2=pHead1,pHead2
while p1!=p2:
p1 = p1.next if p1 else pHead2
p2 = p2.next if p2 else pHead1
return p1
统计一个数字在排序数组中出现的次数。
class Solution: def GetNumberOfK(self, data, k): if not data: return 0 return self.helper(data,k) def helper(self,data,k): if not data: return 0 left, right = 0, len(data) - 1 mid = (left + right) // 2 if data[mid] > k: return self.helper(data[:mid], k) elif data[mid] < k: return self.helper(data[mid + 1:], k) else: return 1 + self.helper(data[:mid], k) + self.helper(data[mid + 1:], k)
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
class Solution:
def TreeDepth(self, pRoot):
if pRoot==None:return 0
return max(self.TreeDepth(pRoot.left),self.TreeDepth(pRoot.right))+1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。