如何删除链表的节点,在go语言应该怎么做
导读:这篇文章分享给大家的内容是关于如何删除链表的节点,在go语言应该怎么做,本文介绍得很详细,内容很有参考价值,希望可以帮到有需要的小伙伴,接下来就让小编带领大家一起了解看看吧。 go语言删除链表节点的方法:首...
这篇文章分享给大家的内容是关于如何删除链表的节点,在go语言应该怎么做,本文介绍得很详细,内容很有参考价值,希望可以帮到有需要的小伙伴,接下来就让小编带领大家一起了解看看吧。
go语言删除链表节点的方法:首先将下一个节点的值移动到当前删除节点;然后更改当前节点的Next即可,如【node.Next = node.Next.Next】。
本文操作环境:windows10系统、GO 1.11.2、thinkpad t480电脑。
具体方法:
最优解:
把下一个节点的值移动到当前删除节点,然后更改当前节点的Next
node.Val = node.Next.Val node.Next = node.Next.Next
其他方法:
p.next = p.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
}
题目:
删除链表中的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
现有一个链表 – head = [4,5,1,9],它可以表示为:
示例 1:
输入: head = [4,5,1,9], node = 5
输出: [4,1,9]
解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 ->
1 ->
9.
示例 2:
输入: head = [4,5,1,9], node = 1
输出: [4,5,9]
解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 ->
5 ->
9.
Code
依然注意,是达到删除的目的
/**
* 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
}
以上就是关于“如何删除链表的节点,在go语言应该怎么做”的介绍了,感谢各位的阅读,希望文本对大家有所帮助。如果想要了解更多知识,欢迎关注网络,小编每天都会为大家更新不同的知识。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何删除链表的节点,在go语言应该怎么做
本文地址: https://pptw.com/jishu/654584.html
