go语言如何删除链表节点
时间:2021-01-06 13:45
go语言删除链表节点的方法:首先将下一个节点的值移动到当前删除节点;然后更改当前节点的Next即可,如【node.Next = node.Next.Next】。 本文操作环境:windows10系统、GO 1.11.2、thinkpad t480电脑。 具体方法: 最优解: 把下一个节点的值移动到当前删除节点,然后更改当前节点的Next 其他方法: p.next = p.next.next即可达到删除的目的 题目: 删除链表中的节点 现有一个链表 – head = [4,5,1,9],它可以表示为: 示例 1: 输入: head = [4,5,1,9], node = 5 输入: head = [4,5,1,9], node = 1 Code 依然注意,是达到删除的目的 相关推荐:golang教程 以上就是go语言如何删除链表节点的详细内容,更多请关注gxlsystem.com其它相关文章!node.Val = node.Next.Val
node.Next = node.Next.Next
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func deleteNode(head *ListNode, val int) *ListNode {
if head.Val == val{
return head.Next
}
pre:=head
for head.Next.Val != val{
head = head.Next
}
head.Next = head.Next.Next
return pre
}
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
输出: [4,1,9]
解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
示例 2:
输出: [4,5,9]
解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9./**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func deleteNode(node *ListNode) {
for node.Next.Next != nil {
node.Val = node.Next.Val
node = node.Next
}
node.Val = node.Next.Val
node.Next = nil
}