最坏的情况就是交叉的情况:
比如
1 3 5
2 4 6
2 4 6
设上链指针p,下链q,每次比较后较小节点依次作为“合并后链表的节点”,同时较小链指针后移。某链指空后不再比较。则楼上所给的第一个例子:第一步:1和2比,1小作为新节点,p移至3。第二步,3和2比,2小作为新节点,q移至4。第三步,3和4比,3小,p移至5。第四步,5和4比,4小,q移至6。第五步,5和6比,p指空。结束一共比较了5次=3+3-1。
最坏的情况实质上是让两指针都走完各自的链表,同时某链肯定先走完,因为一次只移动一个指针,另一个链表无论怎样都会至少少走一步,这就是m+n-1的含义。
本文详细解析了两个有序链表合并的过程与最坏情况下的比较次数。通过具体实例说明了如何进行链表节点的比较与合并,以及在某个链表先遍历完毕时的处理方式。
2267

被折叠的 条评论
为什么被折叠?



