LeetCode 369. 给单链表加一(递归)

    技术2024-11-12  8

    文章目录

    1. 题目2. 解题

    1. 题目

    用一个 非空 单链表来表示一个非负整数,然后将这个整数加一。

    你可以假设这个整数除了 0 本身,没有任何前导的 0。

    这个整数的各个数位按照 高位在链表头部、低位在链表尾部 的顺序排列。

    示例: 输入: [1,2,3] 输出: [1,2,4]

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/plus-one-linked-list 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    2. 解题

    递归,先钻到最后面,再开始处理 class Solution { public: ListNode* plusOne(ListNode* head) { int carry = 1; dfs(head, carry); if(carry) { ListNode* newhead = new ListNode(carry); newhead->next = head; return newhead; } return head; } void dfs(ListNode* head, int& carry) { if(!head) return; dfs(head->next, carry); int sum = head->val+carry; head->val = sum%10; carry = sum/10; } };

    4 ms 8.8 MB

    题解区还有,找数字9的解法。


    我的博客地址 https://michael.blog.csdn.net/

    长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

    Processed: 0.036, SQL: 9