package offer;
import java.util.List;
public class Test13 {
public static class ListNode{
int value;
ListNode next;
public ListNode(int value){
this.value = value;
this.next = null;
}
}
public static ListNode deleteNode(ListNode head,ListNode toBeDeleted){
if (null == head || null == toBeDeleted){
return head;
}
if (head == toBeDeleted){
return head.next;
}
if (toBeDeleted.next == null){
ListNode tmp = head;
while (tmp.next != toBeDeleted){
tmp = tmp.next;
}
tmp.next = null;
}else{
toBeDeleted.value = toBeDeleted.next.value;
toBeDeleted.next = toBeDeleted.next.next;
}
return head;
}
public static void printList(ListNode head){
while (head != null){
System.out.print(head.value + "->");
head = head.next;
}
System.out.println("null");
}
public static void main(String[] args){
ListNode head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
head.next.next.next = new ListNode(4);
ListNode middle =
head.next.next.next.next = new ListNode(5);
head.next.next.next.next.next = new ListNode(6);
head.next.next.next.next.next.next = new ListNode(7);
head.next.next.next.next.next.next.next = new ListNode(8);
ListNode last =
head.next.next.next.next.next.next.next.next = new ListNode(9);
head = deleteNode(head,null);
printList(head);
ListNode node = new ListNode(12);
head = deleteNode(head,head);
printList(head);
head = deleteNode(head,last);
printList(head);
head = deleteNode(head,middle);
printList(head);
//not in
head = deleteNode(head,node);
printList(head);
}
}