思路
先解决特殊条件。。。
package swordPointingToTheOffer;
public class Eighteen {
public static class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public static ListNode deleteNode(ListNode head, int val) {
if(head==null){
//空链表
return null;
}
if(head.val==val){
//头节点就是,,返回后面的链表
return head.next;
}
ListNode temp = head.next; //当前节点的下一个节点temp
ListNode pre = head; //当前节点pre
while (temp!=null){
if(temp.val==val){
//当前节点的下一个节点就是
pre.next = temp.next;//把下下个节点的地址赋值给当前节点
return head;
}
//指针后移一位
temp = temp.next;
pre =pre.next;
}
//找不到节点的情况
return null;
}
public static void main(String[] args) {
ListNode listNode1 = new ListNode(4);
ListNode listNode2 = new ListNode(5);
ListNode listNode3 = new ListNode(1);
ListNode listNode4 = new ListNode(9);
ListNode head = listNode1;
head.next = listNode2;
listNode2.next = listNode3;
listNode3.next = listNode4;
deleteNode(listNode1,5);
while (head!=null){
System.out.println(head.val);
head = head.next;
}
}
}