go语言如何删除链表节点
16lz
2021-01-22
go语言删除链表节点的方法:首先将下一个节点的值移动到当前删除节点;然后更改当前节点的Next即可,如【node.Next = node.Next.Next】。
本文操作环境:windows10系统、GO 1.11.2、thinkpad t480电脑。
具体方法:
最优解:
把下一个节点的值移动到当前删除节点,然后更改当前节点的Next
node.Val = node.Next.Valnode.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.Valnode = node.Next}node.Val = node.Next.Valnode.Next = nil}
相关推荐:golang教程
更多相关文章
- java对XML文件的解析、节点的增加、删除操作总结
- XML(4)XDocument和XmlDocument搜索指定的节点
- xml学习(7) .net 获取xml节点或者属性最大值
- FireFox对XML的处理兼容IE的节点处理方法
- 读写xml所有节点个人小结 和 读取xml节点的数据总结
- 详解XML命名空间(XML Namespaces)介绍以及节点读取方法的示例代码
- xml创建根节点、子节点的示例代码分享
- java通过XPath解析xml节点的代码详解
- 有关xml节点的文章推荐10篇