Files
JACKYMYPERSON e1546166a3 增加新题目
2025-08-24 04:20:11 +08:00

66 lines
1.1 KiB
Go

package main
import "fmt"
type ListNode struct {
Val int
Next *ListNode
}
func main() {
}
func removeNthFromEnd(head *ListNode, n int) *ListNode {
if head.Next == nil && n == 1 {
return nil
}
firstNode := (*ListNode)(nil)
result := (*ListNode)(nil)
preNode := (*ListNode)(nil)
for head != nil {
fmt.Printf("1----")
if preNode != nil {
fmt.Printf("preNode:%d|", preNode.Val)
if firstNode == nil {
firstNode = preNode
result = preNode
} else {
result.Next = preNode
result = result.Next
}
}
tmp := head
tmp2 := &ListNode{Val: tmp.Val}
value := 0
for i := 0; i < n; i++ {
if tmp.Next != nil {
tmp = tmp.Next
value++
} else {
break
}
}
fmt.Printf("%d", value)
if value == n-1 {
fmt.Printf("找到,")
preNode = nil
head = head.Next
continue
}
preNode = tmp2
head = head.Next
}
if preNode != nil {
fmt.Printf("preNode:%d|", preNode.Val)
if firstNode == nil {
firstNode = preNode
result = preNode
} else {
result.Next = preNode
result = result.Next
}
}
return firstNode
}