LeetCode 2. Add Two Numbers
来源:互联网 发布:51电子单片机原理图 编辑:程序博客网 时间:2024/06/07 05:18
描述
给出两个数,分别是用链表存储,求两个数之和。
解决
把这个题目当成数组来思考即可。当一个链表为空的时候,就需要new一个存储空间进行连接,注意进位的判断。
/** * 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 t1 = 0, t2 = 0; ListNode *h1 = l1, *h2 = l2; int c = 0; bool flag = false; while (l1 != NULL && l2 != NULL){ t1 = l1 -> val; t2 = l2 -> val; if (t1 + t2 >= 10){ t1 = t2 = t1 + t2 - 10; l1 -> val = t1; l2 -> val = t2; if (l1 -> next == NULL && l2 -> next == NULL){ ListNode* ptr = new ListNode(0); l1 -> next = ptr; ptr -> val += 1; }else if (l1 -> next != NULL){ l1 -> next -> val += 1; }else if (l2 -> next != NULL){ l2 -> next -> val += 1; } }else{ l1 -> val = t1 + t2; l2 -> val = t1 + t2; } l1 = l1 -> next; l2 = l2 -> next; } if (l1 != NULL){ while (l1 != NULL){ if (l1 -> val >= 10 && l1 -> next != NULL){ l1 -> val -= 10; l1 -> next -> val += 1; }else if (l1 -> val >= 10 && l1 -> next == NULL){ l1 -> next = new ListNode(1); l1 -> val -= 10; } l1 = l1 -> next; } return h1; } else if (l2 != NULL){ while (l2 != NULL){ if (l2 -> val >= 10 && l2 -> next != NULL){ l2 -> val -= 10; l2 -> next -> val += 1; }else if (l2 -> val >= 10 && l2 -> next == NULL){ l2 -> next = new ListNode(1); l2 -> val -= 10; } l2 = l2 -> next; } } return h2; }};
0 0
- [LeetCode]2.Add Two Numbers
- LeetCode 2.Add Two Numbers
- LeetCode --- 2. Add Two Numbers
- [Leetcode] 2. Add Two Numbers
- 【leetcode】2. Add Two Numbers
- leetcode 2. Add Two Numbers
- LeetCode-2.Add Two Numbers
- [leetcode] 2. Add Two Numbers
- 【LeetCode】2. Add Two Numbers
- LeetCode - 2. Add Two Numbers
- LeetCode 2.Add Two Numbers
- LeetCode 2. Add Two Numbers
- Leetcode 2. Add Two Numbers
- 2. Add Two Numbers LeetCode
- leetcode 2. Add Two Numbers
- LeetCode-2. Add Two Numbers
- LeetCode 2. Add Two Numbers
- 2. Add Two Numbers----LeetCode
- ASP.Net程序插入错误: 列名或所提供值的数目与表定义不匹配
- Quated-Printable解码及出错解决方式
- opencv清晰度,色偏等评价函数
- Spring Boot实战之全局异常捕获 实现参数异常检查返回统一错误信息
- 简单题:Your task is to Calculate a + b.
- LeetCode 2. Add Two Numbers
- Animation-Layer
- const 常量指针
- MySQL中的数据类型
- 一文看尽中国互动直播行业——低俗无聊?那是现状,不是未来
- Eclipse开发C/C++之使用技巧小结,写给新手
- 推荐算法预览
- msm8610 lcd driver code analysis
- Shell入门基础