LeetCode OJ--Add Two Numbers
2024-09-08 16:53:26
http://oj.leetcode.com/problems/add-two-numbers/
将用链表表示的两个数相加,(2 -> 4 -> 3) + (5 -> 6 -> 4) 就是342 + 465.刚开始把题目给理解错了,做复杂了。
主要是对指针的理解。
ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
if(l1==NULL)
return l2;
if(l2==NULL)
return l1;
int sum;
int carry = ; ListNode *ans = l1;
ListNode *ans3 = ans;
//最后结果存到l1 ans
while(l1&&l2)
{
sum = l1->val + l2->val + carry;
carry = sum/;
if(carry)
l1->val = sum - ;
else
l1->val = sum;
l1 = l1->next;
l2 = l2->next;
}
if(l1==NULL &&l2==NULL)
{
if(carry == )
return ans; //找到最后一个节点
while(ans3->next)
ans3 = ans3->next;
ListNode *temp = new ListNode();
ans3->next = temp;
return ans;
}
//将两种情况化成一种
if(l1 == NULL)
{
while(ans3->next)
ans3 = ans3->next;
ans3->next = l2;
l1 = l2;
l2 = NULL;
} //要看最高位进位的情况
if(carry == )
return ans; while(carry == && l1)
{ l1->val += carry;
if(l1->val > )
{
l1->val = l1->val %;
carry = ;
l1 = l1->next;
}
else
return ans; }
if(carry == )
{
while(ans3->next)
ans3 = ans3->next;
ListNode *temp = new ListNode();
ans3->next = temp;
} return ans;
}
int main()
{
ListNode *l1 = new ListNode();
ListNode *n1 = new ListNode();
ListNode *n5 = new ListNode(); ListNode *l2 = new ListNode();
ListNode *n4 = new ListNode();
ListNode *n6 = new ListNode();
//ListNode *n8 = new ListNode(8);
l1->next = n1;
n1->next = n5;
l2->next = n4;
n4->next = n6;
//n6->next = n8;
Solution myS;
ListNode *temp = myS.addTwoNumbers(l2,l1);
return ;
}
囧,读复杂了,还做了个链表的翻转。
ListNode *reverse(ListNode * l2)
{
ListNode *n1,*n2,*before;
n1 = l2;
n2 = n1->next;
before = NULL;
while(n2)
{
n1->next = before;
before = n1;
n1 = n2;
n2 = n2->next;
}
n1->next = before;
return n1;
}
三个指针做链表的反转。
最新文章
- Spring JDBC实现查询
- [转]Android SHA1与Package获取方式
- centos网卡错误Device eth0 does not seem to be present
- latex输入希腊字母
- Laravel 清空配置缓存
- JavaScript 按回车键提交搜索表单 easyui ajax方式
- C#中易混淆的知识点
- jdbc_servlet基础增删改分页2(userinfo表的)
- 开源OSS.Social微信项目解析
- 机器学习技法:09 Decision Tree
- Python入门-用户登录程序升级版
- ASP.NET MVC - 处理Html数据
- Best Free Hacking E-Books 2017 In PDF Format
- ionic框架使用步骤
- Ajax提交用FormData()上传文件
- spring源码分析系列 (8) FactoryBean工厂类机制
- Linux CentOS下Python+robot framework环境搭建
- express运行原理
- python---基础知识回顾(六)网络编程2(处理粘包)
- 关于Cocos2d-x中的scheduleUpdate和update方法的使用