繁体   English   中英

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

[英]To merge two sorted linked lists. Is there a better way to create new Linked list heads in java?

在这个程序中,我在 class LinkedList 中创建了头节点。

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;
    }
}

和主要的 function 在不同的 class 看起来像这样。

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);

每次创建一个新的 object 的链表 class 是一个好习惯还是有更好的方法来做到这一点? 提前致谢!

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM