/*
* function ListNode(x){
* this.val = x;
* this.next = null;
* }
*/
// 反转链表
function reverse (node) {
let pre = null
let cur = node
let next = null
while (cur) {
next = cur.next
cur.next = pre
pre = cur
cur = next
}
return pre
}
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
function plusOne( head ) {
let cur = reverse(head)
let result = new ListNode(-1),
temp = result,
flag = false
while (cur) {
if (!flag) cur.val += 1
flag = true
if (cur.val > 9) {
cur.val = 0
flag = false
temp.next = cur
temp = temp.next
} else {
temp.next = cur
temp = temp.next
}
cur = cur.next
}
if (temp.val === 0) {
temp.next = new ListNode(1)
}
return reverse(result.next)
}
module.exports = {
plusOne : plusOne
};