校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 单向链表
题目

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


解答

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

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


C 1条回复 评论
实名者

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















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

发表于 2022-10-05 07:47:43
0 0