首页 > 代码库 > Plus One Linked List -- LeetCode

Plus One Linked List -- LeetCode

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->3Output: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 };

 

Plus One Linked List -- LeetCode