我是靠谱客的博主 风中小兔子,最近开发中收集的这篇文章主要介绍leetcode 445 两数相加||(链表相加、栈),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述:
给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。

你可以假设除了数字 0 之外,这两个数字都不会以零开头。

进阶:

如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。

思路:
首先存储链表中的数字,然后依次相加,最后构造一个新的链表

代码如下:

class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
stack<int>a;
stack<int>b;
while(l1){
a.push(l1->val);
l1=l1->next;
}
while(l2){
b.push(l2->val);
l2=l2->next;
}
ListNode* node=NULL;
int carry=0;
while(!a.empty()||!b.empty()||carry>0){
int sum=carry;
if(!a.empty()){
sum+=a.top();;
a.pop();
}
if(!b.empty()){
sum+=b.top();;
b.pop();
}
ListNode* tmp=new ListNode(sum%10);
tmp->next=node;
node=tmp;
carry=sum/10;
}
return node;
}
};

最后

以上就是风中小兔子为你收集整理的leetcode 445 两数相加||(链表相加、栈)的全部内容,希望文章能够帮你解决leetcode 445 两数相加||(链表相加、栈)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部