Leetcode2 两数相加
程序员文章站
2022-04-04 09:02:56
...
Leetcode2 两数相加
题目描述
代码实现
public class AddTwoNumbers
{
public static void main(String[] args)
{
// 链表 1
ListNode list1Node1 = new ListNode(2);
ListNode list1Node2 = new ListNode(4);
ListNode list1Node3 = new ListNode(3);
list1Node1.next = list1Node2;
list1Node2.next = list1Node3;
// 链表 2
ListNode list2Node1 = new ListNode(5);
ListNode list2Node2 = new ListNode(6);
ListNode list2Node3 = new ListNode(4);
list2Node1.next = list2Node2;
list2Node2.next = list2Node3;
ListNode resListNode = addTwoNumbers(list1Node1, list2Node1);
listNodePrint(resListNode);
}
public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int sum=0;
ListNode dummy=new ListNode(0);
ListNode cur=dummy;
ListNode p1=l1,p2=l2;
while (p1!=null||p2!=null)
{
if (p1!=null)
{
sum+=p1.val;
p1=p1.next;
}
if (p2!=null)
{
sum+=p2.val;
p2=p2.next;
}
cur.next=new ListNode(sum%10);
sum/=10;
cur=cur.next;
}
if (sum==1)
{
cur.next=new ListNode(1);
}
return dummy.next;
}
//递归打印链表
public static void listNodePrint(ListNode listNode) {
if (listNode == null) {
return;
}
if (listNode.next == null) {
System.out.println(listNode.val);
return;
}
System.out.println(listNode.val);
listNodePrint(listNode.next);
}
}
// 定义链表
class ListNode{
int val;
ListNode next;
ListNode(int val){
this.val = val;
}
}
下一篇: leetCode 322. 零钱兑换