LeetCode 02. 两数相加
题目描述
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
其实就是十进制的加法,下面是我写的代码
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode addTwoNumbers(ListNode f1, ListNode f2) {
ListNode re=new ListNode();
ListNode p=re;
int t=0; //记录和
while(f1!=null||f2!=null||t!=0) {
if(f1!=null) {
t=t+f1.val;
f1=f1.next;
}
if(f2!=null) {
t=t+f2.val;
f2=f2.next;
}
if(p==null) {
p=re=new ListNode(t%10);
t=t/10;
}else {
re.next=new ListNode(t%10);
t=t/10;
re=re.next;
}
}
return p.next;
}
}
总结: 该题目考察的是进制的计算和链表的操作