翻倍以链表形式表示的数字



题目:

示例:


思路:

有点相似于:链表相加II,这道题我们仍然有进位,但不同的是,链表相加我们选择了开辟新节点,这道题我们选择反转两次链表,开始一次,结束一次。

单链表的翻转详细讲解:反转一个单链表(<---点击可看详解)


题解代码:

复制代码
struct ListNode* reverse(struct ListNode* head)
{
    struct ListNode* n1 = NULL;
    struct ListNode* n2 = head;
    struct ListNode* n3 = NULL;
    if(n2)
	    n3 = n2->next;
 
    while (n2)
    {
	    n2->next = n1;
	    n1 = n2;
	    n2 = n3;
	    if (n3)
		    n3 = n3->next;
    }
 
    return n1;
}

struct ListNode* doubleIt(struct ListNode* head)
{
    struct ListNode* prev = NULL;
    struct ListNode* Back = reverse(head);

    head = Back;
    int add = 0;

    while(Back)
    {
        int temp = Back->val * 2 + add;
        add = temp / 10;

        prev = Back;

        Back->val = temp % 10;
        Back = Back->next;
    }

    if(add > 0)
    {
        struct ListNode* newnode = malloc(sizeof(struct ListNode));
        newnode->val = add;
        newnode->next = NULL;

        prev->next = newnode;
    }

    head = reverse(head);
    return head;
}

个人主页:Lei宝啊

愿所有美好如期而遇

相关推荐
橘子汽水1681 小时前
Leetcode 200,994岛屿数量,腐烂的橘子
数据结构·算法·leetcode
kiracrimson1 小时前
【无标题】
数据结构
Tisfy3 小时前
LeetCode 3871.统计范围内的逗号 II:每次算一个逗号
数学·算法·leetcode·题解
zcmodeltech3 小时前
冷链物流沙盘模型控制系统设计——基于STM32与Modbus RTU的冷藏车、冷库全流程动态展示方案
数据结构·stm32·单片机·嵌入式硬件·物联网·能源
find1star3 小时前
LeetCode 54:螺旋矩阵——用四个边界模拟矩阵收缩
java·算法·leetcode·边缘计算·学习方法
吞下星星的少年·-·4 小时前
LeetCode 热题 100 两数之和(哈希表)
算法·leetcode·哈希算法
Shan12054 小时前
经典算法题示例与详解:飞地的数量(二)
java·数据结构·算法
土司大王4 小时前
LeetCode hot100——全排列
java·算法·leetcode
203号居民5 小时前
LeetCode hot 100 — 138. 随机链表的复制
算法·leetcode·链表
土司大王6 小时前
LeetCode hot100——实现 Trie (前缀树)
java·算法·leetcode