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

链表相加(二)

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取模,计算累加数据放入栈中,最后遍历弹出栈数据,组装链表
第一个题目没有看资料,自己弄出来的,虽然写的代码不好,很开心,慢慢进步

全部评论

相关推荐

Rena1ssance_:对的,要是面评没太烂,勤更新简历等捞就行了,腾讯可以无限复活
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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