博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2. 两数相加
阅读量:3964 次
发布时间:2019-05-24

本文共 1007 字,大约阅读时间需要 3 分钟。

1. 题目描述

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

在这里插入图片描述

来源:力扣(LeetCode)

链接:

2. 解法

需要注意的是,要维护一个进位 carry!

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {        ListNode* res = new ListNode(-1);    // 定义头节点        ListNode* iter = res;                        // 定义工作迭代节点        int carry = 0;        while(l1 != nullptr || l2 != nullptr || carry != 0){            if(l1 != nullptr){                carry += l1 -> val;                l1 = l1 -> next;            }            if(l2 != nullptr){                carry += l2 -> val;                l2 = l2 -> next;            }            iter -> next = new ListNode(carry % 10);            iter = iter -> next;            carry /= 10;        }        return res -> next;                   // 注意要舍弃头节点!    }};```

转载地址:http://kqwki.baihongyu.com/

你可能感兴趣的文章
信安入门神级书单
查看>>
【IPFS指南】IPFS的竞争对手们(一)
查看>>
docker更换国内镜像
查看>>
CentOS 下 tree命令用法详解
查看>>
docker上传镜像至Registry时https报错解决方法
查看>>
docker下删除none的images
查看>>
Linux提权获取敏感信息方法
查看>>
Ubuntu 16.04开机A start job is running for Raise network interface(5min 4s)解决方法
查看>>
Ubuntu 16.04开机隐藏菜单缩短时间
查看>>
Ubuntu 更换国内源
查看>>
Ubuntu16.04下Docker pull connection refused 解决办法
查看>>
postgres基本操作(个人总结版)
查看>>
The AnimationClip 'Walk' used by the Animation component 'Pig' must be marked as Legacy.
查看>>
《Linux内核设计与实现》- Linux的进程
查看>>
inet_ntoa()
查看>>
POSIX消息队列mq_open问题
查看>>
用户态切换到内核态的3种方式
查看>>
笔试常见的智力题(附答案)
查看>>
内核库函数
查看>>
Linux 系统内核空间与用户空间通信的实现与分析
查看>>