剑指18 删除链表节点
此题的一个技巧:为链表附增一个表头节点,方便将所有节点进行统一处理
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/class Solution {public ListNode deleteNode(ListNode head, int val) {// 为链表附增一个头节点ListNode pHead = new ListNode(-1);pHead.next = head;ListNode p = pHead;while (p.next.val != val)p = p.next;p.next = p.next.next;return pHead.next;}}
/*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/func deleteNode(head *ListNode, val int) *ListNode {preHead := new(ListNode)preHead.Next = headp := preHeadfor p != nil && p.Next.Val != val {p = p.Next}if p != nil {p.Next = p.Next.Next}return preHead.Next}
