合并两个有序链表的两种方法(带哨兵位和不带哨兵位)

一:题目

二:思路讲解

方法一:不带哨兵位

两个链表的对应节点进行比较,然后取小的尾插,直到某一个链表为空,再把剩下的不为空的链表链接过去即可。(和前面一篇博客(合并两个有序数组题目讲解-CSDN博客)思路类似)

1:应先对传过来的两个链表中存在空链表的情况,率先进行处理,list1为空,return list2,反之。

2:当一个链表比较完了之后,就没必要进行比较了,此时,另一个链表的剩余部分怎么处理,很简单,直接让排完序的那个链表的尾指针指向这个链表的剩余部分即可,因为剩下的都是大于排好序的链表里面的每一个的,而且剩余的自己也有顺序,所以直接链接即可。

代码展示:

方法二:带哨兵位

思路讲解:

哨兵位的创建 ,其意义是让新建的head和tail这两个结构体指针 指向了一个节点大小的空间,但是节点的内容和指向一开始不作任何要求,哨兵位的优势在于我们不需要在第一个尾插的时候,去进行tail和head的初次赋值。

代码展示:

一定要释放掉自己创建的哨兵位,并且让head移动到真正的头指针的位置! 

 

相关推荐

  1. Leetcode:合并有序

    2024-05-12 18:42:04       7 阅读
  2. 合并有序

    2024-05-12 18:42:04       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-12 18:42:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-12 18:42:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-12 18:42:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-12 18:42:04       20 阅读

热门阅读

  1. docker配置GPU支持

    2024-05-12 18:42:04       9 阅读
  2. 计算机网络实验——学习记录七(IP协议)

    2024-05-12 18:42:04       9 阅读
  3. AES对称加密算法原理、C++代码示例

    2024-05-12 18:42:04       9 阅读
  4. Android 面试常见知识点总结(持续更)

    2024-05-12 18:42:04       13 阅读
  5. 知网相关文章采集

    2024-05-12 18:42:04       12 阅读
  6. [力扣题解]53. 最大子数组和

    2024-05-12 18:42:04       11 阅读
  7. 哈希表第5/9题--两数之和

    2024-05-12 18:42:04       9 阅读
  8. let和const命令

    2024-05-12 18:42:04       12 阅读
  9. 网络工程师----第二十三天

    2024-05-12 18:42:04       8 阅读