调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
class Solution:
def reOrderArray(self, array):
# write code here
odd,even=[],[]
for i in array:
odd.append(i) if i%2 !=0 else even.append(i)
return odd+even
链表中的倒数第k个节点
输入一个链表,输出该链表中倒数第k个结点。
class Solution:
def FindKthToTail(self, head, k):
# write code here
if head==None or k<=0:
return None
p1=head
p2=head
# 一共迭代k-1次 若k==1,则p1==p2
while k > 1:
#p2先走k-1步
if p2.next != None:
p2=p2.next
else:
return None
k-=1
#p1 p2一起走
while p2.next != None:
p1=p1.next
p2=p2.next
return p1
反转链表
输入一个链表,反转链表后,输出新链表的表头。
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
if pHead == None or pHead.next == None:
return pHead
pre = None
cur = pHead
while cur != None:
#pre与tmp分别保存之前与之后的list
tmp=cur.next
cur.next = pre
pre = cur
cur = tmp
return pre