Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Given linked list – head = [4,5,1,9], which looks like following:
Example 1:
Example 2:
Note:
- The linked list will have at least two elements.
- All of the nodes’ values will be unique.
- The given node will not be the tail and it will always be a valid node of the linked list.
- Do not return anything from your function.
package com.leetcode;
public class Delete {
public static void main(String[] args) {
ListNode head = new ListNode(4);
head.next = new ListNode(5);
head.next.next = new ListNode(1);
head.next.next.next = new ListNode(9);
displayList(head);
System.out.println();
deleteNode(head.next.next);
displayList(head);
System.out.println();
}
public static void displayList(ListNode head) {
for (ListNode curr = head; curr != null; curr = curr.next)
System.out.print(curr.value + " ");
}
public static void deleteNode(ListNode x) {
x.value = x.next.value;
x.next = x.next.next;
}
}
class ListNode {
public ListNode(int value) {
this.value = value;
this.next = null;
}
public int value;
public ListNode next;
}