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],它可以表示为:

22b5606a0008e99dfe328fd39c90ac7.png

示例 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教程

更多相关文章

  1. java对XML文件的解析、节点的增加、删除操作总结
  2. XML(4)XDocument和XmlDocument搜索指定的节点
  3. xml学习(7) .net 获取xml节点或者属性最大值
  4. FireFox对XML的处理兼容IE的节点处理方法
  5. 读写xml所有节点个人小结 和 读取xml节点的数据总结
  6. 详解XML命名空间(XML Namespaces)介绍以及节点读取方法的示例代码
  7. xml创建根节点、子节点的示例代码分享
  8. java通过XPath解析xml节点的代码详解
  9. 有关xml节点的文章推荐10篇

随机推荐

  1. 2010.11.27———android 展示网络上的图
  2. Android中的集中常用布局方式和按钮事件
  3. LayoutAnimation
  4. 在Android上执行Java程序
  5. Android创建自定义键盘
  6. zxing项目源码解读(2.3.0版本,Android部分)
  7. Android Service小实践
  8. Android使用Intent实现页面跳转
  9. Java和Javascript互调的例子 ---------(An
  10. 如何让Android屏幕只能上下翻转