leetcode【每日一题】两数相加 II Java

题干

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。

你可以假设除了数字 0 之外,这两个数字都不会以零开头。

进阶:

如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。

示例:

输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 8 -> 0 -> 7

想法

不让反转链表,那就用栈反转
注意进位就行了 比较简单

Java代码

package daily;

import  util.ListNode;
import  java.util.*;
public class AddTwoNumbers {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        Stack<Integer> stack1=new Stack<>();
        Stack<Integer> stack2=new Stack<>();
        //用栈反转,下同
        while (l1!=null){
            stack1.push(l1.val);
            l1=l1.next;
        }
        while (l2!=null){
            stack2.push(l2.val);
            l2=l2.next;
        }
        ListNode last=null;
        //进位
        int  carry=0;
        //栈吐出来
        while(!stack1.isEmpty()||!stack2.isEmpty()||carry!=0){
            int sum=carry;
            if(!stack1.isEmpty()){
                sum+=stack1.pop();
            }
            if(!stack2.isEmpty()){
                sum+=stack2.pop();
            }
            //此时位数
            ListNode tem=new ListNode(sum%10);
            //放到现在的前边
            tem.next=last;
            last=tem;
            //新的进位
            carry=sum/10;

        }
        return  last;

    }

    public  static  void main(String [] args){
        AddTwoNumbers addTwoNumbers=new AddTwoNumbers();
        ListNode l1=new ListNode(7);
        ListNode l2=new ListNode(5);
        l1.next=new ListNode(2);
        l1.next.next=new ListNode(4);
        l1.next.next.next=new ListNode(3);
        l2.next=new ListNode(6);
        l2.next.next=new ListNode(4);



        ListNode head=addTwoNumbers.addTwoNumbers(l1,l2);
        while(head!=null){
            if(head.next==null){
                System.out.printf(String.valueOf(head.val));
            }
            else {
                System.out.printf(head.val + "->");

            }
            head = head.next;
        }
    }
}

我的leetcode代码都已经上传到我的git

发布了180 篇原创文章 · 获赞 0 · 访问量 3762

猜你喜欢

转载自blog.csdn.net/qq_43491066/article/details/105505660
今日推荐