package 两数相加;
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
public static void main(String[] args) {}
}
class Solution {
public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int number = 0;//进位
ListNode l3 = new ListNode(0);
ListNode root = l3;//代替指针,移动
while(l1 !=null ||l2 != null || number != 0) {
int num1 = l1 != null? l1.val:0;
int num2 = l2 != null? l2.val:0;
ListNode temp = new ListNode((num1+num2+number)%10);//取模
//
root.next = temp;
root = temp;
number = (num1+num2+number)/10;//进位
if (l1 != null)
l1 = l1.next;
if (l2 != null)
l2 = l2.next;
}
l3 = l3.next;//去掉头结点
return l3;
}
public static void main(String[] args) {
ListNode l1 = new ListNode(1);
ListNode l2 = new ListNode(9);
l2.next= new ListNode(9);
ListNode l = addTwoNumbers(l1, l2);
System.out.println(l.val+"->"+l.next.val+"->"+l.next.next.val);
}
}
两数相加
最新推荐文章于 2022-09-02 00:25:18 发布