编写一个concatenate()方法,该方法接受两个链接列表list1和list2,并将list2追加到list1的末尾。
例如,如果列表最初是:list1:
head-->3-->6-->7-->2-->null
清单2:
head-->9-->5-->3-->null
串联后成为list1:
head-->3-->6-->7-->2-->9-->5-->3-->null
public static void concatenate(LinkedList list1, LinkedList list2) {
//code
}
问题来源:Stack Overflow
想法:您需要一个指针来指向list1的头部。然后将指针移到list1的最后一个元素,并将其分配给指向list2头的旁边。
public class Node
{
int data;
Node next;
Node(int d) {data = d;
next = null;}
}
public static Node concatenate (Node head1, Node head2) //head1 points to head of list1, head2 points to head of list2
{
Node temp=null;
if (head1==NULL) //if the first linked list is empty
return (head2);
if (head2==NULL) //if second linked list is empty
return (head1);
temp=head1; //place temporary pointer on the first node of the first linked list
while (temp.next!=NULL) //move p to the last node
temp=temp.next;
temp.next=head2; //address of the first node of the second linked list stored in the last node of the first linked list
return (head1);
}
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。