tail_node.next = next_node head = next_node i = 0 node = next_node i = i + 1 return dummy.next def reverse(node, k): tmp = node previous = None while tmp: tmp.next, previous, tmp = previous, tmp, tmp.next k = k - 1 if k == 0: return previous, node l = SingleLinkedList() l.add_list_item(2) l.add_list_item(1) l.printall() r = reverseKGroup(l.root, 2) tmp = "" while r is not None: tmp = tmp + str(r.data) + '->' r = r.next print(tmp[:-2])
if i == n: if last_previous: last_previous.next = node first.next = tmp node.next = previous previous = node node = tmp else: if i == m - 1: last_previous = node node = tmp i = i + 1 if m == 1: return previous return head l = SingleLinkedList() l.add_list_item(5) l.add_list_item(4) l.printall() x = reverseBetween(l.root, 1, 1) tmp = "" while x is not None: tmp = tmp + str(x.data) + '->' x = x.next print(tmp[:-2])