package main import "fmt" type ListNode struct { Val int Next *ListNode } func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode { l3 := &ListNode{} figure := 0 node1 := l1 node2 := l2 node3 := l3 flag := true for flag || node1.Next != nil || node2.Next != nil || figure > 0 { value := node1.Val + node2.Val + figure fmt.Println(value) node3.Val = (value) % 10 figure = (value) / 10 if node1.Next != nil || node2.Next != nil || figure > 0 { node3.Next = &ListNode{} node3 = node3.Next } else { flag = false } if node1.Next != nil { node1 = node1.Next } else { node1 = &ListNode{} } if node2.Next != nil { node2 = node2.Next } else { node2 = &ListNode{} } } return l3 } func main() { l1 := &ListNode{8, nil} //a1 := &ListNode{1,l1} //b1 := &ListNode{3,a1} //c1 := &ListNode{4,b1} l2 := &ListNode{0, nil} //a2 := &ListNode{1,l2} //b2 := &ListNode{1,a2} //c2 := &ListNode{1,b2} fmt.Println(addTwoNumbers(l1, l2)) }
05-10
2373