mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-23 09:51:45 +08:00
94 lines
1.4 KiB
Go
94 lines
1.4 KiB
Go
package leetcode
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/halfrost/LeetCode-Go/structures"
|
|
)
|
|
|
|
type question237 struct {
|
|
para237
|
|
ans237
|
|
}
|
|
|
|
// para 是参数
|
|
// one 代表第一个参数
|
|
type para237 struct {
|
|
one []int
|
|
n int
|
|
}
|
|
|
|
// ans 是答案
|
|
// one 代表第一个答案
|
|
type ans237 struct {
|
|
one []int
|
|
}
|
|
|
|
func Test_Problem237(t *testing.T) {
|
|
|
|
qs := []question237{
|
|
|
|
{
|
|
para237{[]int{1, 2, 3, 4, 5}, 1},
|
|
ans237{[]int{2, 3, 4, 5}},
|
|
},
|
|
|
|
{
|
|
para237{[]int{1, 2, 3, 4, 5}, 2},
|
|
ans237{[]int{1, 3, 4, 5}},
|
|
},
|
|
|
|
{
|
|
para237{[]int{1, 1, 1, 1, 1}, 1},
|
|
ans237{[]int{}},
|
|
},
|
|
|
|
{
|
|
para237{[]int{1, 2, 3, 4, 5}, 5},
|
|
ans237{[]int{1, 2, 3, 4}},
|
|
},
|
|
|
|
{
|
|
para237{[]int{}, 5},
|
|
ans237{[]int{}},
|
|
},
|
|
|
|
{
|
|
para237{[]int{1, 2, 3, 4, 5}, 10},
|
|
ans237{[]int{1, 2, 3, 4, 5}},
|
|
},
|
|
|
|
{
|
|
para237{[]int{1}, 1},
|
|
ans237{[]int{}},
|
|
},
|
|
}
|
|
|
|
fmt.Printf("------------------------Leetcode Problem 237------------------------\n")
|
|
|
|
for _, q := range qs {
|
|
_, p := q.ans237, q.para237
|
|
fmt.Printf("【input】:%v 【output】:%v\n", p, structures.List2Ints(removeElements(structures.Ints2List(p.one), p.n)))
|
|
}
|
|
fmt.Printf("\n\n\n")
|
|
}
|
|
|
|
func removeElements(head *ListNode, val int) *ListNode {
|
|
if head == nil {
|
|
return head
|
|
}
|
|
newHead := &ListNode{Val: 0, Next: head}
|
|
pre := newHead
|
|
cur := head
|
|
for cur != nil {
|
|
if cur.Val == val {
|
|
pre.Next = cur.Next
|
|
} else {
|
|
pre = cur
|
|
}
|
|
cur = cur.Next
|
|
}
|
|
return newHead.Next
|
|
}
|