剑指 Offer 18. 删除链表的节点

这题挺好,一次性做出

重点是定义一个dummy节点,这样就不用特判head节点了

注意看一下链表这种指针的感觉

dummy.next=head

是把head指向的对象也指向了dummy

之后即使head=head.next这样改动head

dummy还是指的原来的位置

class Solution {
    public ListNode deleteNode(ListNode head, int val) {
        ListNode dummy=new ListNode(0);
        dummy.next=head;
        ListNode pre=dummy;

        while(head!=null)//初始值为空??
        {
            if(head.val==val)
            {
                pre.next=head.next;
                break;
            }

            pre=head;
            head=head.next;
        }
        return dummy.next;
    }
}
原文地址:https://www.cnblogs.com/take-it-easy/p/14541969.html