Given a non-negative number represented as a singly linked list of digits, plus one to the number.
The digits are stored such that the most significant digit is at the head of the list.
Example:
Input: 1->2->3 Output: 1->2->4
思路:递归。
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; 8 */ 9 class Solution { 10 public: 11 int help(ListNode* head) { 12 if (head->next == NULL) head->val++; 13 else head->val += help(head->next); 14 if (head->val < 10) return 0; 15 head->val = 0; 16 return 1; 17 } 18 ListNode* plusOne(ListNode* head) { 19 int credit = help(head); 20 if (!credit) return head; 21 ListNode *res = new ListNode(1); 22 res->next = head; 23 return res; 24 } 25 };
时间: 2024-10-18 03:29:45