mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 20:40:39 +08:00
更新 0203.移除链表元素 go版本增加直接操作原链表方法
This commit is contained in:
@ -330,7 +330,40 @@ class Solution:
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Go:
|
### 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
|
```go
|
||||||
/**
|
/**
|
||||||
* Definition for singly-linked list.
|
* Definition for singly-linked list.
|
||||||
|
Reference in New Issue
Block a user