增加新题目
This commit is contained in:
151
链表/两数相加/main.go
151
链表/两数相加/main.go
@@ -1,5 +1,9 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
type ListNode struct {
|
||||
Val int
|
||||
Next *ListNode
|
||||
@@ -8,6 +12,77 @@ type ListNode struct {
|
||||
func main() {
|
||||
|
||||
}
|
||||
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
|
||||
signal := false
|
||||
tmpstr := ""
|
||||
firstNode := (*ListNode)(nil)
|
||||
result := (*ListNode)(nil)
|
||||
value1 := 0
|
||||
|
||||
for l1 != nil || l2 != nil {
|
||||
//
|
||||
tmpNode := &ListNode{}
|
||||
a := 0
|
||||
if signal {
|
||||
a = 1
|
||||
}
|
||||
if l1 == nil {
|
||||
value := l2.Val
|
||||
if value+a > 9 {
|
||||
signal = true
|
||||
} else {
|
||||
signal = false
|
||||
}
|
||||
tmpNode.Val = (value + a) % 10
|
||||
result.Next = tmpNode
|
||||
result = result.Next
|
||||
l2 = l2.Next
|
||||
continue
|
||||
}
|
||||
if l2 == nil {
|
||||
value := l1.Val
|
||||
if value+a > 9 {
|
||||
signal = true
|
||||
} else {
|
||||
signal = false
|
||||
}
|
||||
fmt.Println("l2==nil")
|
||||
tmpNode.Val = (value + a) % 10
|
||||
result.Next = tmpNode
|
||||
result = result.Next
|
||||
l1 = l1.Next
|
||||
continue
|
||||
}
|
||||
value := l1.Val + l2.Val
|
||||
if value+a > 9 {
|
||||
signal = true
|
||||
} else {
|
||||
signal = false
|
||||
}
|
||||
tmpNode.Val = (value + a) % 10
|
||||
if value1 == 0 {
|
||||
firstNode = tmpNode
|
||||
result = tmpNode
|
||||
value1 = 1
|
||||
l1 = l1.Next
|
||||
l2 = l2.Next
|
||||
continue
|
||||
}
|
||||
result.Next = tmpNode
|
||||
result = result.Next
|
||||
l1 = l1.Next
|
||||
l2 = l2.Next
|
||||
|
||||
}
|
||||
if signal {
|
||||
tmpNode := &ListNode{}
|
||||
tmpNode.Val = 1
|
||||
result.Next = tmpNode
|
||||
result = result.Next
|
||||
}
|
||||
fmt.Println(tmpstr)
|
||||
return firstNode
|
||||
}
|
||||
|
||||
//func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
|
||||
// var str1 string
|
||||
@@ -62,41 +137,41 @@ func main() {
|
||||
// return num
|
||||
//}
|
||||
|
||||
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
|
||||
firstNode := (*ListNode)(nil)
|
||||
result := (*ListNode)(nil)
|
||||
value := 0
|
||||
|
||||
for l1 != nil || l2 != nil {
|
||||
tmpNode := &ListNode{}
|
||||
if l1 == nil {
|
||||
tmpNode.Val = l2.Val
|
||||
result.Next = tmpNode
|
||||
result = result.Next
|
||||
l2 = l2.Next
|
||||
continue
|
||||
} else if l2 == nil {
|
||||
tmpNode.Val = l1.Val
|
||||
result.Next = tmpNode
|
||||
result = result.Next
|
||||
l1 = l1.Next
|
||||
continue
|
||||
}
|
||||
tmpNode.Val = l1.Val + l2.Val
|
||||
if value == 0 {
|
||||
firstNode = tmpNode
|
||||
result = tmpNode
|
||||
l1 = l1.Next
|
||||
l2 = l2.Next
|
||||
value++
|
||||
continue
|
||||
}
|
||||
result.Next = tmpNode
|
||||
result = result.Next
|
||||
l1 = l1.Next
|
||||
l2 = l2.Next
|
||||
|
||||
}
|
||||
|
||||
return firstNode
|
||||
}
|
||||
//func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
|
||||
// firstNode := (*ListNode)(nil)
|
||||
// result := (*ListNode)(nil)
|
||||
// value := 0
|
||||
//
|
||||
// for l1 != nil || l2 != nil {
|
||||
// tmpNode := &ListNode{}
|
||||
// if l1 == nil {
|
||||
// tmpNode.Val = l2.Val
|
||||
// result.Next = tmpNode
|
||||
// result = result.Next
|
||||
// l2 = l2.Next
|
||||
// continue
|
||||
// } else if l2 == nil {
|
||||
// tmpNode.Val = l1.Val
|
||||
// result.Next = tmpNode
|
||||
// result = result.Next
|
||||
// l1 = l1.Next
|
||||
// continue
|
||||
// }
|
||||
// tmpNode.Val = l1.Val + l2.Val
|
||||
// if value == 0 {
|
||||
// firstNode = tmpNode
|
||||
// result = tmpNode
|
||||
// l1 = l1.Next
|
||||
// l2 = l2.Next
|
||||
// value++
|
||||
// continue
|
||||
// }
|
||||
// result.Next = tmpNode
|
||||
// result = result.Next
|
||||
// l1 = l1.Next
|
||||
// l2 = l2.Next
|
||||
//
|
||||
// }
|
||||
//
|
||||
// return firstNode
|
||||
//}
|
||||
|
||||
Reference in New Issue
Block a user