LeetCode 369. 给单链表加一
题目描述
思路分析
加法问题
参考代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
func plusOne(head *ListNode) *ListNode {
var stack []int
for head != nil {
stack = append(stack, head.Val)
head = head.Next
}
carry := 1
var pre *ListNode
// 依次从栈顶取出节点值进行加一
for len(stack) > 0 || carry > 0 {
sum := carry
if len(stack) > 0 {
sum += stack[len(stack)-1]
stack = stack[:len(stack)-1]
}
// 处理进位
carry = sum / 10
sum = sum % 10
// 创建新节点并插入到链表头部
cur := &ListNode{Val: sum}
cur.Next = pre
pre = cur
}
return pre
}
1
write your code here
CC BY-NC-SA 4.0
许可协议,转载请注明出处!
本博客所有文章除特别声明外,均采用