class Solution:
def FindKthToTail(self, head, k):
# write code here
if not head:
return None
fast, slow = head, head
for i in range(1, k):
if not fast:
return None
fast = fast.next
while fast.next:
fast = fast.next
slow = slow.next
return slow
class Solution(object):
def mergeTwoLists(self, l1, l2):
head = ListNode(-1)
temp = head
while l1 and l2:
if l1.val <= l2.val:
temp.next = l1
l1 = l1.next
temp = temp.next
else:
temp.next = l2
l2 = l2.next
temp = temp.next
if l1:
temp.next = l1
if l2:
temp.next = l2
return head.next
class Solution(object):
def reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if not head:
return None
a, b, c = None, head, head.next
while c:
b.next = a
a, b, c = b, c, c.next
b.next = a
return b
class Solution:
def HasSubtree(self, pRoot1, pRoot2):
# write code here
if pRoot1 == None or pRoot2 == None:
return False
return self.isSubtree(pRoot1, pRoot2)
def isSubtree(self, p1, p2):
if p2 == None:
return True
if p1 == None:
return p1 == p2
res = False
if p1.val == p2.val:
res = self.isSubtree(p1.left, p2.left) and self.isSubtree(p1.right, p2.right)
return res or self.isSubtree(p1.left, p2) or self.isSubtree(p1.right, p2)
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
# write code here
if exponent == 0:
return 1
if exponent == 1:
return base
if exponent == -1:
return 1/base
ans = self.Power(base, exponent >> 1)
ans = ans * ans
if exponent & 1 == 1:
ans = ans * base
return ans