#牛客在线求职答疑中心#将两个结点数都为N且都从小到大有序的单向链表合并成一个从小到大有序的单向链表,那么可能的最少比较次数
全部评论
要将两个结点数都为N且都从小到大有序的单向链表合并成一个从小到大有序的单向链表,最少比较次数是N+N-1,也就是2N-1次。
这是因为每次合并时,你都需要比较两个链表当前节点的值,然后选择较小的那个节点加入到新链表中。在最理想的情况下,两个链表的每个节点都恰好需要进行一次比较:
1. 第1次比较:链表1的第1个节点与链表2的第1个节点比较。
2. 第2次比较:链表1的第2个节点与链表2的第1个节点比较(如果链表1的第1个节点已经被选入新链表)。
3. 第3次比较:链表1的第3个节点与链表2的第1个节点比较(如果链表1的第2个节点已经被选入新链表)。
4. ...
5. 第2N-1次比较:链表1的第N个节点与链表2的第N-1个节点比较。
所以,最少比较次数是2N-1次。当然,这个是最理想的情况,实际情况下可能会有更多的比较次数,但2N-1是一个下限。
相关推荐
10-19 15:00
文华学院 嵌入式工程师 点赞 评论 收藏
分享