From df11fce6e858ba356eb0a5c8c400634f37188434 Mon Sep 17 00:00:00 2001 From: wangzilong Date: Fri, 29 Dec 2023 10:56:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=200203.=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E9=93=BE=E8=A1=A8=E5=85=83=E7=B4=A0=20go=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=9B=B4=E6=8E=A5=E6=93=8D=E4=BD=9C=E5=8E=9F?= =?UTF-8?q?=E9=93=BE=E8=A1=A8=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0203.移除链表元素.md | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/problems/0203.移除链表元素.md b/problems/0203.移除链表元素.md index 780f9c36..d6d7e6c2 100644 --- a/problems/0203.移除链表元素.md +++ b/problems/0203.移除链表元素.md @@ -330,7 +330,40 @@ class Solution: ``` ### Go: +直接使用原链表 +```go +/** + * Definition for singly-linked list. + * type ListNode struct { + * Val int + * Next *ListNode + * } + */ +func removeElements(head *ListNode, val int) *ListNode { + //依旧是先定义逻辑 + + //如果原链表的头节点为val的话,head=head.next,且为持续过程,防止头节点后面的节点也为Val + //这里前置循环 并且要判定head 是否为nil,防止出错 + for head != nil && head.Val == val {//由于leetcode代码运行方式,for循环条件判断前后顺序不能修改,下面的for循环也同样如此 + head = head.Next + } + cur := head + + for cur != nil && cur.Next != nil { + if cur.Next.Val == val { + cur.Next = cur.Next.Next + } else { + cur = cur.Next + } + } + + return head + +} + +``` +虚拟头节点方式: ```go /** * Definition for singly-linked list.