18. 删除链表的节点

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

题目 #

给定单链表的头指针和一个要删除的节点的值,定义一个函数删除该节点,返回删除后的链表的头节点。链表中节点的值互不相同。

思路 #

代码 #

public class ListNode {
    int val;
    ListNode next;
    ListNode(int x) { val = x; }
}
class Solution {
    public ListNode deleteNode(ListNode head, int val) {
        if (head.val == val) return head.next;
        ListNode ptr = head;
        while (ptr.next.val != val) ptr = ptr.next;
        ptr.next = ptr.next.next;
        return head;
    }
}