删除链表结点

public class DeleteListNode {

public static void deleteListNode(ListNode head,ListNode toDelete){

    if(head == null || toDelete == null){
        throw new RuntimeException("没有目标节点删除");
    }

    //只有一个头节点,删完后置空
    if(head.next == null && toDelete.next == null){
        Link.head = null;//head = null 相当于值传递,无法改变head
        toDelete = null;
    }else if(head.next != null && toDelete.next == null){//删除尾结点
        ListNode pre = head;
        while (pre.next != toDelete){
            pre = pre.next;
        }
        pre.next = null;
    }else {//head.next != null && toDelete.next != null 删除中间结点
        toDelete.data = toDelete.next.data;
        toDelete.next = toDelete.next.next;
    }
}

public static void main(String[] args){
    Link link = new Link();
    link.add(1);

    ListNode toDelete = link.head;
    DeleteListNode.deleteListNode(link.head,toDelete);
    link.print();
}
}