21-Add Two Numbers-Leetcode
来源:互联网 发布:软件开发技术特点 编辑:程序博客网 时间:2024/06/05 07:25
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
思路:从左边对齐,开始相加,将产生的进位置为下一个指针的初始值,这里主要需要考虑到几种情况,两个链表相等或不等两类,
最重要的是根据进位决定next指针是否为空或者是一个新节点。
/** * 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 * head = new ListNode(0); ListNode * beg = head; int pre=0; while(l1!=NULL||l2!=NULL){ if(l1!=NULL&&l2!=NULL){ head->val = head->val+l1->val+l2->val; pre = head->val/10; head->val = (head->val)%10; l1 = l1->next; l2 = l2->next; if(l1==NULL&&l2==NULL&&pre==0)head->next = NULL;//这个if很重要 else head->next = new ListNode(pre); head = head->next; } else if(l1!=NULL&&l2==NULL){ head->val = head->val+l1->val; pre = head->val/10; head->val = (head->val)%10; l1 = l1->next; if(l1==NULL&&pre==0)head->next = NULL; else head->next = new ListNode(pre); head = head->next; } else if(l1==NULL&&l2!=NULL) { head->val = head->val+l2->val; pre = head->val/10; head->val = (head->val)%10; l2 = l2->next; if(l2==NULL&&pre==0)head->next = NULL; else head->next = new ListNode(pre); head = head->next; } else{ head->val = pre; return beg; } } return beg; }};
0 0
- 21-Add Two Numbers-Leetcode
- 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 Add Two Numbers
- LeetCode-Add Two Numbers
- [leetcode] Add Two Numbers
- [LeetCode] Add Two Numbers
- LeetCode - Add Two Numbers
- LeetCode | Add Two Numbers
- LeetCode——048
- php通过curl post和get发送json数据实例 curl命令转为php源码
- Ubuntu 14.04 配置 Nginx + uWSGI 托管 virtualenv 下 Flask 应用的一点注意事项
- 阮一峰:美丽心灵的永恒阳光
- php设计模式之装饰模式
- 21-Add Two Numbers-Leetcode
- javascript中apply()和call()方法的区别
- 关于类的专题研究
- as 报错 Error:(303, 27) 错误: 找不到符号 符号: 方法 sin(float) 位置: 类 FloatMath
- 面向过程 函数式 面向对象 ----基于python讲解
- 【读书笔记】Android安全机制解析与应用实践之源码分析
- HTTP和HTTPS有什么不同(区别)
- java中clone 方法的作用
- Spring的AOP应用