大家好,又见面了,我是你们的朋友全栈君。
ListNode是由自己定义的java中的链表对象
类结构如下
public class ListNode
{
int val;
ListNode next;
public ListNode(int x){
val=x;
}
}
初始化时必须传值
有一列 1.给出 Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) 要求 Output: 7 -> 0 -> 8
很明显这是链表各个位置的相加,并且存在进位,实现代码如下:
public ListNode addTwoNumbers(ListNode l1,ListNode l2){
ListNode dummyHead = new ListNode(0);
ListNode p=l1,q=l2,curr=dummyHead;
int carry=0;//进位
while(p!=null || q!=null){
int x=(p!=null)?p.val:0;
int y=(q!=null)?q.val:0;
int sum=x+y+carry;
carry=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;
}输入的链表长度不一,需要时刻进行判断是否为null
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126872.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...