Java怎么返回首节点
更新:HHH   时间:2023-1-7


本篇内容主要讲解“Java怎么返回首节点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么返回首节点”吧!

You are given two linked lists representing two non-negative numbers.    
The digits are stored in reverse order and each of their nodes contain a single digit.    
Add the two numbers and return it as a linked list.      
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class AddTwoNumbers {

    public static void main(String[] args) {
        ListNode l1 = new ListNode(2);
        ListNode l1n1 = new ListNode(4);
        ListNode l1n2 = new ListNode(3);

        ListNode l2 = new ListNode(5);
        ListNode l2n1 = new ListNode(6);
        ListNode l2n2 = new ListNode(4);

        l1.next = l1n1;
        l1n1.next = l1n2;

        l2.next = l2n1;
        l2n1.next = l2n2;

        AddTwoNumbers atn = new AddTwoNumbers();
        ListNode pre = atn.addTwoNumbers(l1,l2);
        Utils.print(pre);
    }


    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        int carry =0;

        ListNode newHead = new ListNode(0);//作为暂存首节点
        ListNode p1 = l1, p2 = l2, p3=newHead; //p3作为操作变量

        while(p1 != null || p2 != null){
            if(p1 != null){
                carry += p1.val;
                p1 = p1.next;
            }

            if(p2 != null){
                carry += p2.val;
                p2 = p2.next;
            }

            p3.next = new ListNode(carry%10);
            p3 = p3.next;
            carry /= 10;
        }

        if(carry==1)
            p3.next=new ListNode(1);

        return newHead.next; //返回首节点
    }
}

到此,相信大家对“Java怎么返回首节点”有了更深的了解,不妨来实际操作一番吧!这里是天达云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

返回云计算教程...