Skip to content

Commit daa7c7f

Browse files
committed
fix/445: add other solution
1 parent 259eba0 commit daa7c7f

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

leetcode/0445.Add-Two-Numbers-II/445. Add Two Numbers II.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,72 @@ func getLength(l *ListNode) int {
6767
}
6868
return count
6969
}
70+
71+
func addTwoNumbers1(l1 *ListNode, l2 *ListNode) *ListNode {
72+
reservedL1 := reversedList(l1)
73+
reservedL2 := reversedList(l2)
74+
75+
dummyHead := &ListNode{}
76+
head := dummyHead
77+
carry := 0
78+
for reservedL1 != nil || reservedL2 != nil || carry > 0 {
79+
val := carry
80+
if reservedL1 != nil {
81+
val = reservedL1.Val + val
82+
reservedL1 = reservedL1.Next
83+
}
84+
if reservedL2 != nil {
85+
val = reservedL2.Val + val
86+
reservedL2 = reservedL2.Next
87+
}
88+
carry = val / 10
89+
head.Next = &ListNode{Val: val % 10}
90+
head = head.Next
91+
}
92+
return reversedList(dummyHead.Next)
93+
}
94+
95+
func reversedList(head *ListNode) *ListNode {
96+
var prev *ListNode
97+
for head != nil {
98+
tmp := head.Next
99+
head.Next = prev
100+
101+
prev = head
102+
head = tmp
103+
}
104+
return prev
105+
}
106+
107+
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
108+
stack1 := pushStack(l1)
109+
stack2 := pushStack(l2)
110+
111+
dummyHead := &ListNode{}
112+
head := dummyHead
113+
carry := 0
114+
for len(stack1) > 0 || len(stack2) > 0 || carry > 0 {
115+
val := carry
116+
if len(stack1) > 0 {
117+
val = val + stack1[len(stack1)-1]
118+
stack1 = stack1[:len(stack1)-1]
119+
}
120+
if len(stack2) > 0 {
121+
val = val + stack2[len(stack2)-1]
122+
stack2 = stack2[:len(stack2)-1]
123+
}
124+
carry = val / 10
125+
tmp := head.Next
126+
head.Next = &ListNode{Val: val % 10, Next: tmp}
127+
}
128+
return dummyHead.Next
129+
}
130+
131+
func pushStack(l *ListNode) []int {
132+
var stack []int
133+
for l != nil {
134+
stack = append(stack, l.Val)
135+
l = l.Next
136+
}
137+
return stack
138+
}

0 commit comments

Comments
 (0)