LeetCode之Add Two Numbers
来源:互联网 发布:万网二手域名交易平台 编辑:程序博客网 时间:2024/06/15 23:20
一、题目
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
二、考虑过程
两个列表逐个节点相加,遍历过程类似于归并。1、可以以短列表为基础,先将短列表长度遍历完,再单独将长列表多余部分比例;2、以长列表为基础,加以判断短列表长度不够。
归并算法
另一个需要注意:进位问题
三、代码
/** * 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) { int carry = 0; ListNode* ll = new ListNode(0); ListNode* head = ll; while(l1!=NULL || l2!=NULL){ //||以长为限制,&&以短为限制 int val1 = 0; if(l1!=NULL){ //加以判断 val1 = l1->val; l1 = l1->next; } int val2 = 0; if(l2!=NULL){ //加以判断 val2 = l2->val; l2 = l2->next; } int temp = val1+val2+carry; ll->next = new ListNode(temp%10); carry = temp/10; ll = ll->next; } if(carry>=1){ ll->next = new ListNode(carry); } return head->next; }};
0 0
- leetcode之Add Two Numbers
- LeetCode 之 Add Two Numbers
- leetcode之Add Two Numbers
- LeetCode之Add Two Numbers
- leetcode之Add Two Numbers
- leetcode之Add Two Numbers
- 【LeetCode】之Add Two Numbers
- LeetCode之Add Two Numbers
- leetcode之Add Two Numbers
- leetCode之 Add Two Numbers
- LeetCode之Add Two Numbers
- LeetCode题目之5 Add Two Numbers
- leetcode之路002 Add Two Numbers
- 【Leetcode】之Add Two Numbers问题
- LeetCode之2— Add Two Numbers
- leetcode: 单链表之Add Two Numbers
- LeetCode学习之路-Add Two Numbers
- ACM之LeetCode中Add Two Numbers
- Leetcode 98. Validate Binary Search Tree
- 【Win32笔记四】Mesasge的定义和发送——消息队列
- javascript数据结构9-排序
- 文章标题
- Cadence 17.2 Padstack Editor入门指南(2)
- LeetCode之Add Two Numbers
- 最短路径算法
- 基于Caffe的人脸关键点检测实现
- 激活office 2010
- 使用时间服务器同步服务器与客户端的时间
- xUtils3获取同一个URL中被更改后的图片
- 程序员保持快乐活跃的6个好习惯 6 things I do to be consistently happy
- Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)
- python课后作业1