leetcode--刷题日记

  • 题目

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

  • 解题思路

 采用一个带头节点的指针head链接合并后的新指针,一个空指针pre进行循环加载两个链表中的节点比较两个链表节点的值,pre指针链接较小值的链表的节点,依次遍历两个链表,直到一个为空停止循环。

最后将不为空的链表加载到pre指针后面。返回经过链接的有序链表head.next。pre=head;通过这样赋值的指针指向相同的内存地址

  • 代码实现

复杂度分析

时间复杂度:O(n + m) 。while 循环的次数等于两个链表的总长度。

空间复杂度:O(1) 。迭代的过程只会产生几个指针,所以它所需要的空间是常数级别的

猜你喜欢

转载自blog.csdn.net/qq_30193541/article/details/104294443