Problem statement
Given a pointer to the middle node of the linked list, delete that node.
Solution
# Definition for singly-linked list.
class ListNode(object):
def __init__(self, x):
self.val = x
self.next = None
def del_mid_node(head, mid):
temp = mid.next
mid.val = temp.val
mid.next = temp.next
if __name__ == "__main__":
n1 = ListNode(1)
n2 = ListNode(2)
n3 = ListNode(3)
n4 = ListNode(4)
n5 = ListNode(5)
head, mid = n1, n3
n1.next = n2
n2.next = n3
n3.next = n4
n4.next = n5
del_mid_node(head, mid)
p = head
while p:
print p.val
p = p.next