- 题目
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
- 解题思路
采用一个带头节点的指针head链接合并后的新指针,一个空指针pre进行循环加载两个链表中的节点比较两个链表节点的值,pre指针链接较小值的链表的节点,依次遍历两个链表,直到一个为空停止循环。
最后将不为空的链表加载到pre指针后面。返回经过链接的有序链表head.next。pre=head;通过这样赋值的指针指向相同的内存地址。
- 代码实现
复杂度分析
时间复杂度:O(n + m) 。while 循环的次数等于两个链表的总长度。
空间复杂度:O(1) 。迭代的过程只会产生几个指针,所以它所需要的空间是常数级别的