题目链接: 剑指Offer 18. 删除链表的节点
题目描述:
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
返回删除后的链表的头节点。
解法思路:
由于包含删除第一个节点的情况,因此采用虚拟头节点,
当遍历时找到待删除节点的前驱节点时,删除节点即可
代码:
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func deleteNode(head *ListNode, val int) *ListNode {
if head == nil {
return nil
}
dummy:= &ListNode{Next:head}
p := dummy
for p.Next != nil {
if p.Next.Val == val{
p.Next = p.Next.Next
break
}
p = p.Next
}
return dummy.Next
}
标签:ListNode,删除,Offer,18,Next,链表,节点
From: https://www.cnblogs.com/lxing-go/p/17659077.html