I was doing some programming problems today on leetcode. The problem I was trying to solve is over on this link.
I was able to solve the problem using the code below:
class Solution(object):
def oddEvenList(self, head):
if not head:
return head
oddPointer = head
evenPointer = head.next
temp = head.next
while evenPointer and evenPointer.next:
oddPointer.next = evenPointer.next
oddPointer = oddPointer.next
evenPointer.next = oddPointer.next
evenPointer = evenPointer.next
oddPointer.next = temp
return head
However if I change to the code below, the online judges give me a time limit exceed error. I was wondering what the problem is over here.
class Solution(object):
def oddEvenList(self, head):
if not head:
return head
oddPointer = head
evenPointer = head.next
while evenPointer and evenPointer.next:
oddPointer.next = evenPointer.next
oddPointer = oddPointer.next
evenPointer.next = oddPointer.next
evenPointer = evenPointer.next
oddPointer.next = head.next #this is the change
return head
I remembered I could do this in Java, but for some reason python can't do this.