Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
合并两个已排序的链表。有没有更好的方法在java中创建新的链表头?_Java_Object_Merge_Linked List - Fatal编程技术网

合并两个已排序的链表。有没有更好的方法在java中创建新的链表头?

合并两个已排序的链表。有没有更好的方法在java中创建新的链表头?,java,object,merge,linked-list,Java,Object,Merge,Linked List,在这个程序中,我在类LinkedList中创建了head节点 public class LinkedList { public class Node { public int data; public Node next; } Node Head=null void IntersectionOfTwoSortedLists(Node ListA, Node ListB){ while (ListA!=null && ListB!=null) {

在这个程序中,我在类LinkedList中创建了head节点

public class LinkedList {
public class Node {
    public int data;
    public Node next;
}

Node Head=null
void IntersectionOfTwoSortedLists(Node ListA, Node ListB){

    while (ListA!=null && ListB!=null) {
        if (ListA.data == ListB.data){
            System.out.println(ListA.data);
            InsertAtEnd(ListA.data);
        }
        if(ListA.data<ListB.data)
            ListA=ListA.next;
        else
            ListB=ListB.next;
    }
}
另一个类中的主函数如下所示

public static void main(String[] args) {
    LinkedList list = new LinkedList();
    LinkedList list2= new LinkedList();
    for(int i=0;i<n;i++){
        list.InsertAtEnd(sc.nextInt());
    }
    System.out.println("Enter the list 2 elements");
    for(int i=0;i<n;i++){
      list2.InsertAtEnd(sc.nextInt());
    }

    LinkedList intersect= new LinkedList();
    intersect.IntersectionOfTwoSortedLists(list.Head,list2.Head);

每次创建链表类的新对象都是一个很好的做法,还是有更好的方法?提前谢谢

如果在这种情况下对两个不同的列表执行操作,则必须创建两个不同的对象。您可以使用copy,但在您的情况下,它将不起作用,因为如果您这样做,则在一个列表中更新也会影响其他列表。

由于您的代码已完全工作,但可能需要或可能不需要某些改进,我建议您使用而不是堆栈溢出。