Add Two Numbers Leetcode
来源:互联网 发布:李白 知乎 编辑:程序博客网 时间:2024/06/06 03:52
题意: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.
总结:
1.注意if(l1 != NULL) l1 = l1->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 *resHeader = new ListNode(0);<span style="white-space:pre"></span>ListNode *resTail;<span style="white-space:pre"></span>ListNode *ret;<span style="white-space:pre"></span>carry = 0;<span style="white-space:pre"></span>resTail = resHeader;<span style="white-space:pre"></span>while(true)<span style="white-space:pre"></span>{<span style="white-space:pre"></span> ret = add2dgt(l1,l2);<span style="white-space:pre"></span> if(ret == NULL)<span style="white-space:pre"></span> break;<span style="white-space:pre"></span>resTail->next = ret;<span style="white-space:pre"></span>resTail = resTail->next;<span style="white-space:pre"></span>if(l1 != NULL) l1 = l1->next;<span style="white-space:pre"></span>if(l2 != NULL) l2 = l2->next;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>return resHeader->next; }int carry = 0;//进位值//将两个结点相加,并产生一个进位ListNode * add2dgt(ListNode *a,ListNode *b){<span style="white-space:pre"></span>ListNode *ret=NULL;<span style="white-space:pre"></span>int temp=0;<span style="white-space:pre"></span>if( a!=NULL && b!=NULL ){<span style="white-space:pre"></span>temp = a->val + b->val + carry;<span style="white-space:pre"></span>carry = temp/10;<span style="white-space:pre"></span>ret = new ListNode(temp%10);<span style="white-space:pre"></span>}<span style="white-space:pre"></span>else if(a==NULL && b!=NULL){<span style="white-space:pre"></span>temp = b->val + carry;<span style="white-space:pre"></span>carry = temp/10;<span style="white-space:pre"></span>ret = new ListNode(temp%10);<span style="white-space:pre"></span>}<span style="white-space:pre"></span>else if( b==NULL && a!=NULL){<span style="white-space:pre"></span>temp = a->val + carry;<span style="white-space:pre"></span>carry = temp/10;<span style="white-space:pre"></span>ret = new ListNode(temp%10);<span style="white-space:pre"></span>}<span style="white-space:pre"></span>else if( carry!=0 ){<span style="white-space:pre"></span>temp = carry;<span style="white-space:pre"></span>carry = temp/10;<span style="white-space:pre"></span>ret = new ListNode(temp%10);<span style="white-space:pre"></span>}<span style="white-space:pre"></span>return ret;}};
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 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
- 表视图默认选中第一个cell以及button外沿特性设置
- 生产者消费者问题(多进程+共享内存+信号量)
- 浅谈三层
- 华为机试---删除多行的重复数字
- JSP页面的动态包含和静态包含示例及介绍
- Add Two Numbers Leetcode
- [zoj 3802]Easy 2048 Again 状压DP
- 01背包问题
- 字符串匹配——KMP算法
- POJ 3084 Panic Room(最小割)
- poj 3764字典树应用
- 响应式设计和HTML的<picture>标签
- zoj 3672 思维题
- java compiler level does not match the version of the installed java project