当前位置:新励学网 > 秒知问答 > 一道算法题

一道算法题

发表时间:2024-07-18 01:26:17 来源:网友投稿

,也就是说其中的元素是按照递增或递减的顺序排列且无重复,按照你给的答案来看,A和B应该是递增的。“pa^.data>=pb^.data”是一个循环条件,作用是避免程序做无意义的动作,举个例子来解释:

假设:A链表的元素是3456

B链表的元素是123456789

初始时pa指向3,pb指向1,因为3>=1,所以pb会向后移动,依次指向23…当pb指向3时,pa.data=pb.data,papb同时移动到下一位…进行新的循环比较,直至其中任一单链表中所有元素都比较完。若比较结果有完全吻合的元素序列则返回“true”,否则返回“false”。

假设:A链表的元素是3456

B链表的元素是56789101112

初始时pa指向3,pb指向5,因为3<5,pb第一个元素已经大于pa第一个元素了,而pb又是递增的,后面的元素也一定都大于3,所以已经可以判定pb不可能包含pa,此时如果再让算法继续去比较就没有意义了,所以在前面加了循环条件,不要小看它,当链表很长时它可以大大提高算法的效率。

PS:如果A和B是递减的,那么循环条件应改为“pa^.data<=pb^.data”。

另外站长团上有产品团购,便宜有保证

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!