public Node1721 SwapNodes(Node1721 head, int k) { Node1721 kthNodeFromBeginning = null; Node1721 kthNodeFromEnd = null; var current = head; var currentIndex = 0; while (current != null) { currentIndex += 1; if (currentIndex == k) { kthNodeFromBeginning = current; break; } current = current.Next; } var temp = kthNodeFromBeginning; var tempCurrent = head; while (temp.Next != null) { temp = temp.Next; tempCurrent = tempCurrent.Next; } kthNodeFromEnd = tempCurrent; var val = kthNodeFromBeginning.Value; kthNodeFromBeginning.Value = kthNodeFromEnd.Value; kthNodeFromEnd.Value = val; return(head); }
private static Node1721 CreateLinkedList(int count) { Node1721 head = null; Node1721 previous = null; var current = 1; while (current <= count) { var node = new Node1721 { Value = current }; if (previous != null) { previous.Next = node; } else { head = node; } previous = node; current += 1; } return(head); }