アルゴリズム - 関連レコードのリスト

片方向リンクリストに、アレイ内のすべての数値を追加

ブラシLeetCode 2番目の質問、疑問のうち:

public static ListNode addTwoNumber(ListNode node1, ListNode node2){
        Stack<Integer> stack = new Stack<>();
        while (node1 != null){
            stack.push(node1.val);
            node1 = node1.next;
        }
        StringBuffer sb = new StringBuffer();
        while (!stack.isEmpty()){
            sb.append(stack.pop());
        }
        int num1 = 0;
        if(sb.length() <= 9){
            num1 = Integer.parseInt(sb.toString().trim());
        }
        sb.delete(0,sb.length());
        while (node2 != null){
            stack.push(node2.val);
            node2 = node2.next;
        }
        while (!stack.isEmpty()){
            sb.append(stack.pop());
        }
        int num2 = 0;
        if(sb.length() <= 9){
            num2 = Integer.parseInt(sb.toString().trim());
        }
        sb.delete(0,sb.length());
        int resNum = num1 + num2;
        sb = new StringBuffer(resNum + "");
        String resStr = sb.reverse().toString();
        char[] chs = resStr.toCharArray();
        int[] resNums = new int[chs.length];
        for(int i = 0;i < chs.length;i++){
            if(Integer.parseInt(String.valueOf(chs[i])) < Integer.MAX_VALUE){
                resNums[i] = Integer.parseInt(String.valueOf(chs[i]));
            }
        }
        ListNode res = new ListNode(resNums[0]);//将数组中的数据转移到链表中去
        ListNode help = res;//生成另一个节点,并让help指向res节点,help在此作为一个临时变量,help和res指向同一地址
        for(int i = 1;i < resNums.length;i++){//由于已给res赋值,所以i从1开始
            ListNode temp = new ListNode(resNums[i]);//每循环一次生成一个新的节点,并给当前节点赋值
            help.next = temp;//将help的下一个节点指向生成的新的节点
            help = temp;//将help指向最后一个节点(help的下一个节点)
        }
        return res;
    }

具体的な追加

		ListNode res = new ListNode(resNums[0]);//将数组中的数据转移到链表中去
        ListNode help = res;//生成另一个节点,并让help指向res节点,help在此作为一个临时变量,help和res指向同一地址
        for(int i = 1;i < resNums.length;i++){//由于已给res赋值,所以i从1开始
            ListNode temp = new ListNode(resNums[i]);//每循环一次生成一个新的节点,并给当前节点赋值
            help.next = temp;//将help的下一个节点指向生成的新的节点
            help = temp;//将help指向最后一个节点(help的下一个节点)
        }
        return res;
公開された122元の記事 ウォンの賞賛1 ビュー7338

おすすめ

転載: blog.csdn.net/qq_36079912/article/details/104255492