题目:
给定一个链表,将链表中奇节点放在前,偶节点放在后,返回调整后的链表。
解题思路:
对链表进行遍历,遍历过程中,将奇节点放在一个链表中,偶节点放在一个链表中。最后将这两个链表连接起来。
代码(Python):
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def oddEvenList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if head==None:
return None
length = 0
left = ListNode(0)
head0 = left
right = ListNode(0)
head1 = right
while(head):
length = length+1
if length%2==1:
left.val = head.val
left.next = ListNode(0)
left = left.next
head = head.next
else:
right.val = head.val
right.next = ListNode(0)
right = right.next
head = head.next
left.val = head1.val
left.next = head1.next
head1 = head0
while(head1):
if head1.next.next==None:
head1.next = None
break
head1 = head1.next
return head0