链表面试题
删除指定的某个结点。
思路: O(1)删除法
指定的某个节点说明该节点已经提供了其指针位置,我们可以使用跳跃删除法直接将其删除具体为:
考虑到链表只有一个节点(删头),以及删除链表尾部(需要遍历)的特殊情况,
平均时间复杂度等于: ( O(1)*n-1 + O(n)) / n = O(1)
将两个有序链表合并成一个有序链表。
答: 递归比较合并法
大概分为多个步骤:
- 选择合并的两个链表中最小的节点,作为新链表的起始节点
- 将被选择的链表的剩余节点与另外一个链表再次进行合并为一个新链表,插入到第一步选择的起始节点的后面。
- 重复上述操作,当两个链表其中之一已经合并结束,将剩余的那个链表直接插入到新链表的末尾端
将一个链表逆置。
如&