題型解說
這是一題難度為普通的題目
需要設計一個方法,此方法有兩個 Linked lists 參數
這兩個參數有以下特性
- 皆為正整數
- 鏈表中的數字順序相反
- 沒有前導0,也就是不會出現 080 這種數字
- 兩者都非空
要求是加總這兩個鏈表中的數字後以倒序的方式回傳
解題思路
創建兩個鏈表變數,一個代表起始點,一個代表結束點
一個 while 迴圈走訪所有的元素做加總
程式碼
Java
public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode temp = new ListNode(0);
ListNode result = temp;
int num1 = 0;
int num2 = 0;
while (l1 != null || l2 != null || num2 > 0) {
if (l1 != null) {
num1 += l1.val;
l1 = l1.next;
}
if (l2 != null) {
num1 += l2.val;
l2 = l2.next;
}
num1 += num2;
if (num1 > 9) {
num1 -= 10;
num2 = 1;
} else {
num2 = 0;
}
temp.next = new ListNode(num1);
temp = temp.next;
num1 = 0;
}
return result.next;
}
}