package common;
import java.util.Scanner;
/**
* @author : zhaoliang
* @program :newCoder
* @description : 两数相加
* @create : 2020/11/21 09:15
*/
public class AddTowNumbers {
//给定两个非空链表表示两个非负整数。位数按照逆序方式存储,没个结点存储单个数字,将两数相加返回一个新的链表
public static class ListNode{
int val;
ListNode next;
ListNode(int x){
val = x;
}
}
public static ListNode addTowNumbers(ListNode listNode1,ListNode listNode2){
ListNode dummyHead = new ListNode(0);
ListNode p = listNode1,q = listNode2,curr = dummyHead;
//carry进位数
int carry = 0;
while(p!=null || q !=null){
int x = (p!=null)?p.val:0;
int y = (q!=null)?q.val:0;
int sum =carry+x+y;
//进位数
carry = sum/10;
//新节点的数值为sum %10
curr.next = new ListNode(sum%10);
curr = curr.next;
if (p!=null)p=p.next;
if (q!=null)q=q.next;
}
if (carry>0){
curr.next = new ListNode(carry);
}
return dummyHead.next;
}
}
常见算法-两数相加
最新推荐文章于 2023-06-06 18:50:08 发布