今天做了一条合并两个有序链表的题目,下面来简述一下小菜鸡的解题思路:
一开始,看错了题目,一是没看到链表,一是没看到升序。所以直接当成了列表,觉得简直手拿把掐啊,直接list.extend(),然后直接for循环从小到大排序。结果测试的时候,直接崩掉,提示我不存在extend这个方法,仔细一看,好家伙,是需要合成有序链表。行吧,接着干
但是由于小菜鸡对链表不太熟悉,所以只能一边看人家的解题思路,一边磕磕巴巴的写代码,一边使用chatgpt。
首先,创建一个空链表,以及利用current作为链表的移动节点。
如果链表1的数据小于链表2的数据,则将current的下一个节点指向list1,并且list1的节点向后移动一位;
如果链表1的数据大于等于链表2的数据,则将current的下一个节点指向list2,并且list2的节点向后移动一位;
if判断结束,代表链表数据的一轮判断已经结束,则将current节点向后移动一位;若list1以及list2都未遍历完成,则继续下一轮循环;否则循环结束。判断list1和list2哪个链表不为空,不为空则直接接入到current结点之后