题解 | #链表相加(二)#

链表相加(二)

https://www.nowcoder.com/practice/c56f6c70fb3f4849bc56e33ff2a50b6b

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param head1 ListNode类
     * @param head2 ListNode类
     * @return ListNode类
     */
    public ListNode addInList (ListNode head1, ListNode head2) {
        // write code here
         Stack<ListNode> Stack1 = new Stack<>();
        Stack<ListNode> Stack2 = new Stack<>();
        while (head1 != null) {
            Stack1.add(head1);
            head1 = head1.next;
        }
        while (head2 != null) {
            Stack2.add(head2);
            head2 = head2.next;
        }
        System.out.println(Stack1.size());
        System.out.println(Stack2.size());
        Stack<ListNode> sc = (Stack1.size() > Stack2.size()) ? Stack1 : Stack2;
        System.out.println("sc" + sc.size());
        int i = 0;
        int size = sc.size();
        Stack<ListNode> datas = new Stack<>();
        for(int z = 0;z<size;z++ ) {
           int s1 = Stack1.isEmpty()  ? 0 : Stack1.pop().val;
            int s2 =  Stack2.isEmpty() ? 0 : Stack2.pop().val;
            int sum = s1 + s2 + i;
            System.out.println("sum" + sum);
            if (sum > 9) {
                i = 1;
                datas.add(new ListNode(sum%10));
            } else {
                i = 0;
                datas.add(new ListNode(sum));
            }
        }
         if(i == 1){
            datas.add(new ListNode(i));
        }
        System.out.println("datas" + datas.size());
        ListNode result = datas.pop();
        ListNode temp = result;
        while (!datas.isEmpty()) {
            ListNode pop = datas.pop();
            temp.next = pop;
            temp = temp.next;
        }
        return result;
    }
}

思路:应用栈,先进后出,遍历放入进去,计算的时候,根据栈弹出两个值计算,通过一个全局变量记录进位,大于9取模,计算累加数据放入栈中,最后遍历弹出栈数据,组装链表
第一个题目没有看资料,自己弄出来的,虽然写的代码不好,很开心,慢慢进步

全部评论

相关推荐

头像 会员标识
12-16 14:18
浙江大学 Java
点赞 评论 收藏
分享
12-15 14:16
门头沟学院 Java
回家当保安:发offer的时候会背调学信网,最好不要这样。 “27届 ”和“28届以下 ”公司招聘的预期是不一样的。
实习简历求拷打
点赞 评论 收藏
分享
zzzilik:四个月实习做了3个项目不觉得很假吗,真没必要写这么多吧我感觉挑点核心的重点写一下我感觉会好点
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务