(Medium #24) Swap Nodes in Pairs
Problem
Given a linked list, swap every two adjacent nodes and return its head.
You may not modify the values in the list's nodes, only nodes itself may be changed.
Example:
Given 1->2->3->4
, you should return the list as 2->1->4->3
.
Given a linked list, swap every two adjacent nodes and return its head.
You may not modify the values in the list's nodes, only nodes itself may be changed.
Example:
Given1->2->3->4
, you should return the list as2->1->4->3
.
My solution
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def swapPairs(self, head):
out = ListNode(0)
out.next = ListNode(0)
pre = out
while True:
print(head)
if head == None:
break
if head != None and head.next == None:
pre.next.next = ListNode(head.val)
break
temp = ListNode(head.next.val)
temp.next = ListNode(head.val)
pre.next.next = temp
pre = temp
head = head.next.next
return out.next.next
Runtime: 56ms, Memory: 14.1MB
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def swapPairs(self, head):
out = ListNode(0)
out.next = ListNode(0)
pre = out
while True:
print(head)
if head == None:
break
if head != None and head.next == None:
pre.next.next = ListNode(head.val)
break
temp = ListNode(head.next.val)
temp.next = ListNode(head.val)
pre.next.next = temp
pre = temp
head = head.next.next
return out.next.next
댓글
댓글 쓰기