首页后端开发其他后端知识如何删除链表的节点,在go语言应该怎么做

如何删除链表的节点,在go语言应该怎么做

时间2024-03-28 00:38:03发布访客分类其他后端知识浏览334
导读:这篇文章分享给大家的内容是关于如何删除链表的节点,在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语言链表节点

若转载请注明出处: 如何删除链表的节点,在go语言应该怎么做
本文地址: https://pptw.com/jishu/654584.html
通过源码包升级go版本的方法和步骤是什么 Canvas标签是什么,作用和用法是什么

游客 回复需填写必要信息