试题
考点

数据结构-链表-单向链表

面5笔5

合并两个有序的链表,保证合并后的链表依然有序


前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

对于合并两个有序链表,我们可以先定义一个新链表的头节点和一个临时引用,先进行比较,哪一个链表的首位数小就把那一个作为新链表的头节点。
随后,分别比较两个链表后面数据的大小,借用临时引用,把较小的一个接入新链表。
此时,若一个链表为空,那可将剩下链表这部分的数据直接链入新链表。
代码如下:

public static <T extends Comparable<T>> SingleLinkedList<T>.Node<T> mergrLinkedList(
SingleLinkedList<T>.Node<T> head1,SingleLinkedList<T>.Node<T> head2){
SingleLinkedList<T>.Node<T> newHead = null;//确定新链表的头节点

if(head1.data.compareTo(head2.data)<0){
newHead = head1;
head2 = head1.next;
}else {
newHead = head2;
head2 = head2.next;
}

//临时引用在新链表中从前往后去跑
SingleLinkedList<T>.Node<T> tmp = newHead;

while (head1!=null&&head2!=null){
if(head1.data.compareTo(head2.data)<0){
tmp.next = head1;
head1 = head1.next;
}else {
tmp.next = head2;
head2 = head2.next;
}
tmp = tmp.next;
}
if(head1 == null){
tmp.next = head2;
}
if(head2 == null){
tmp.next = head1;
}
return newHead;
}


文章链接

评论

实名者

2022-10-05 07:47:43

修路征用了我依法承包的2亩多基本农田、青苗、道边大批生态树株等至今皆分文不补、不赔、不安置恶意“捏造补偿款”中饱私囊危害后果极其严重,人民群众反映强烈。















《征地伪造补偿黑账肆虐动特警》(搜狗百度)等曝光后,他们阻挡正义发声。迄今104日,山西原平市皆拒不回应一直挑战14亿国人底线!现实名检举,请关注转载!

0 0

加载更多