C++如何划分链表


这篇文章主要介绍了C++如何划分链表的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++如何划分链表文章都会有所收获,下面我们一起来看看吧。For example,
Given1->4->3-&gt 香港云主机;2->5->2andx= 3,
return1->2->2->4->3->5.这道题要求我们划分链表,把所有小于给定值的节点都移到前面,大于该值的节点顺序不变,相当于一个局部排序的问题。那么可以想到的一种解法是首先找到第一个大于或等于给定值的节点,用题目中给的例子来说就是先找到4,然后再找小于3的值,每找到一个就将其取出置于4之前即可,代码如下:解法一这种解法的链表变化顺序为:1 -> 4 -> 3 -> 2 -> 5 -> 21 -> 2 -> 4 -> 3 -> 5 -> 21 -> 2 -> 2 -> 4 -> 3 -> 5此题还有一种解法,就是将所有小于给定值的节点取出组成一个新的链表,此时原链表中剩余的节点的值都大于或等于给定值,只要将原链表直接接在新链表后即可,代码如下:解法二此种解法链表变化顺序为:Original:1 -> 4 -> 3 -> 2 -> 5 -> 2New:Original: 4 -> 3 -> 2 -> 5 -> 2New:  1Original: 4 -> 3 -> 5 -> 2New:  1 -> 2Original: 4 -> 3 -> 5New:  1 -> 2 -> 2Original:New:  1 -> 2 -> 2 ->4 -> 3 -> 5关于“C++如何划分链表”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“C++如何划分链表”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注开发云行业资讯频道。

相关推荐: win系统无法完成更新正在撤销状态更改怎么办

这篇文章将为大家详细讲解有关win系统无法完成更新正在撤销状态更改怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.登录 香港云主机系统桌面,点击开始菜单 – 控制面板,打开控制面板。2.在打开的控制面板窗口中,点击打…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/14 16:23
下一篇 07/14 16:23

相关推荐