两个链表生成相加链表

两个链表生成相加链表

http://www.nowcoder.com/questionTerminal/c56f6c70fb3f4849bc56e33ff2a50b6b

import java.util.*;
import java.lang.*;


public class Solution {
      public static ListNode addInList (ListNode head1, ListNode head2) {
        Stack<ListNode> stack1 = new Stack<>();
        Stack<ListNode> stack2 = new Stack<>();
        while (head1 != null){
            stack1.push(head1);
            head1 = head1.next;
        }
        while (head2 != null){
            stack2.push(head2);
            head2 = head2.next;
        }
        int carryOver = 0;
        Stack<ListNode> minStack;
        Stack<ListNode> maxStack;
        maxStack = stack1.size() > stack2.size() ? stack1 : stack2;
        minStack = stack1.size() > stack2.size() ? stack2 : stack1;
        ListNode maxNode = null;
        while (!minStack.isEmpty() || !maxStack.isEmpty()){
            int minValue = 0;
            maxNode = maxStack.pop();
            if (!minStack.isEmpty()){
                minValue = minStack.pop().val;
            }
            int sum = maxNode.val + minValue + carryOver;
            carryOver = (sum - (sum % 10)) / 10;
            maxNode.val = sum % 10;
        }

        if (carryOver != 0){
            ListNode root = new ListNode(carryOver);
            root.next = maxNode;
            return root;
        }
        return maxNode;
    }

}
全部评论

相关推荐

01-14 19:01
吉首大学 Java
黑皮白袜臭脚体育生:加个项目吧,一般需要两个项目一业务一轮子呢,简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写
点赞 评论 收藏
分享
02-26 16:52
门头沟学院 Java
Lunarloop:董事长亲自到ssob来要IM项目的技术方案来了
点赞 评论 收藏
分享
这都要4499吗,现在华为od门槛这么高了吗?
北海勇将王冲:od 不是学历够,能过机考就能进吗?八股好像都不怎么用背
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务