如何在Java中获取LinkedList的头节点?

问题描述

这是合并两个链表的leetcode 21问题,我尝试下面给出的最佳解决方案 但是我还是出错了?

class Solution {
    public ListNode mergeTwoLists(ListNode l1,ListNode l2) 
    {
        ListNode one = l1.head;
        ListNode two = l2.head;
        
        LinkedList res=new LinkedList();
        
        while(one.val!= null && two.val!= null)
        {
            if(one.val<=two.val)
            {
                res.addLast(one.val);
                one=one.next;
            }
            else
            {
                res.addLast(two.val);
                two=two.next;
            }
        }
        //if second list finish
        while(one.val!=null)
        {
            res.addLast(one.val);
            one=one.next;
        }
        //if first list finish
        while(two.val!=null)
        {
            res.addLast(two.val);
            two=one.next;
        }
        
        
        return res;
        
        
        
        
    }
}

第14行:错误:找不到符号 符号:可变头

我们如何访问链表的标题

解决方法

我们也可以递归地做到这一点:

public class Solution {
    public static final ListNode mergeTwoLists(
        final ListNode l1,final ListNode l2
    ) {
        if (l1 == null) {
            return l2;
        }

        if (l2 == null) {
            return l1;
        }

        final ListNode merged;

        if (l1.val < l2.val) {
            merged = l1;
            merged.next = mergeTwoLists(l1.next,l2);

        } else {
            merged = l2;
            merged.next = mergeTwoLists(l1,l2.next);
        }

        return merged;
    }
}