添加新题目

This commit is contained in:
2025-08-23 23:09:54 +08:00
parent 62034548cc
commit 70fe6d292c
8 changed files with 260 additions and 2 deletions

View File

@@ -0,0 +1,25 @@
package main
type ListNode struct {
Val int
Next *ListNode
}
func main() {
}
func reverseList(head *ListNode) *ListNode {
pre := (*ListNode)(nil)
res := (*ListNode)(nil)
for head != nil {
next := head.Next
head.Next = pre
pre = head
if next == nil {
res = head
break
}
head = next
}
return res
}

View File

@@ -0,0 +1,20 @@
package main
type ListNode struct {
Val int
Next *ListNode
}
func main() {
}
func mergeTwoLists(list1 *ListNode, list2 *ListNode) *ListNode {
upP := list1
dnP := list2
for upP.Next != nil && dnP.Next != nil {
if upP.Next == nil {
}
}
return nil
}

View File

@@ -0,0 +1,40 @@
package main
type ListNode struct {
Val int
Next *ListNode
}
func main() {
}
func isPalindrome(head *ListNode) bool {
numlist := make([]int, 0)
for head != nil {
numlist = append(numlist, head.Val)
head = head.Next
}
if len(numlist) == 1 {
return true
}
left := len(numlist)/2 - 1
right := left + 1
if len(numlist)%2 != 0 {
left = len(numlist) / 2
right = left
} else {
left = len(numlist)/2 - 1
right = left + 1
}
for left >= 0 {
if numlist[left] == numlist[right] {
left--
right++
} else {
return false
}
}
return true
}

View File

@@ -0,0 +1,23 @@
package main
type ListNode struct {
Val int
Next *ListNode
}
func main() {
}
func hasCycle(head *ListNode) bool {
hash := make(map[*ListNode]struct{})
for head != nil {
if _, ok := hash[head.Next]; ok {
return true
}
hash[head] = struct{}{}
head = head.Next
}
return false
}

View File

@@ -0,0 +1,22 @@
package main
type ListNode struct {
Val int
Next *ListNode
}
func main() {
}
func detectCycle(head *ListNode) *ListNode {
hash := make(map[*ListNode]struct{})
for head != nil {
if _, ok := hash[head.Next]; ok {
return head.Next
}
hash[head] = struct{}{}
head = head.Next
}
return nil
}

View File

@@ -0,0 +1,28 @@
package main
type ListNode struct {
Val int
Next *ListNode
}
func main() {
}
func getIntersectionNode(headA, headB *ListNode) *ListNode {
Anode, Bnode := headA, headB
hash := make(map[*ListNode]struct{})
for Anode != nil {
hash[Anode] = struct{}{}
Anode = Anode.Next
}
for Bnode != nil {
if _, ok := hash[Bnode]; ok {
return Bnode
}
Bnode = Bnode.Next
}
return nil
}