题目:给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储一位数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
解析:这个题看着思路蛮清晰的。它以逆序的方式存储,就可以直接每一位相加了,主要需要考虑的就是进位问题。我对链表这里不是特别熟悉,所以这道题做起来也没有那么顺手。答案其实我没太看懂,我就按照自己的思路写的,觉得还蛮清晰明了的,大家可以点评一下。
Java:
/**
* 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 l1, ListNode l2) {
ListNode l3=new ListNode(0);
ListNode l4=l3; //这里l4存储第一个结点,用于返回
while(l1!=null&&l2!=null){//两者都不为空,才进行加法运算
if(l1.val+l2.val+l3.val&