题目描述
https://leetcode.cn/problems/add-two-numbers/
解题思路
本题就是将两个链表的的值进行相加,但是例如343+564=807,此时就会有进位,所以我们新生成的链表节点的值一定是10的余数,进位用temp变量来表示 temp=n/10。
流程就是:遍历2个链表,将余数作为新节点的值,进位就相加在下一位,注意最后需要处理进位。
class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode head = null, cur = null;int temp = 0;while (l1 != null || l2 != null) {int n1 = l1 == null ? 0 : l1.val;int n2 = l2 == null ? 0 : l2.val;int sum = n1 + n2 + temp;if (head == null) {head = cur = new ListNode(sum % 10);}else {cur.next = new ListNode(sum % 10);cur = cur.next;}// 获取进位temp = sum / 10;if (l1 != null) l1 = l1.next;if (l2 != null) l2 = l2.next;}// 处理最后进位的tempif (temp > 0) {cur.next = new ListNode(temp);}return head;}}
