[LeedCode OJ]#86 Partition List
2015-09-08 17:49
344 查看
【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】
题目链接:https://leetcode.com/problems/partition-list/
题意:
给定一个链表和一个x,要求在不改变其在原本链表中相对位置的情况下,将小于x的结点放在新链表的左边,大于等于x的结点放在新链表的右边
思路:
思路很简单,新建两个链表,一个存放大于等于x的结点,一个存放小于x的结点,左后再合并两个链表即可。
题目链接:https://leetcode.com/problems/partition-list/
题意:
给定一个链表和一个x,要求在不改变其在原本链表中相对位置的情况下,将小于x的结点放在新链表的左边,大于等于x的结点放在新链表的右边
思路:
思路很简单,新建两个链表,一个存放大于等于x的结点,一个存放小于x的结点,左后再合并两个链表即可。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* partition(ListNode* head, int x) { if(head==nullptr) return nullptr; ListNode *big = new ListNode(0); ListNode *small = new ListNode(0); ListNode *pa = big; ListNode *pb = small; ListNode *cur = head; while(cur) { ListNode *pnext = cur->next; if(cur->val>=x) { pa->next = cur; pa = pa->next; pa->next = nullptr; } if(cur->val<x) { pb->next = cur; pb = pb->next; pb->next = nullptr; } cur = pnext; } pb->next = big->next; return small->next; } };
相关文章推荐
- javascript新手入门必读书籍推荐
- UVA 11235 Frequent values (RMQ )
- IOS 视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
- tcpdump查看某个端口数据
- 从零开始编写图片加载库(一)之Handler+Thread图片下载
- Android: Looper, Handler, HandlerThread. Part I
- 【剑指offer】面试题3:二维数组的查找
- c++ int转换为枚举类型
- 重写(overwrite)与重载(overload)的区别
- Swift的基本使用(2)函数的定义
- 程序猿提高工作效率的15点技巧
- iOS在地图上WGS84、GCJ-02、BD-09互转解决方案
- 问题:C#后台获取tr;结果:C# <tr id="a" runat="server"> 怎么在后台用FindControl找到这个tr的id?
- 前端开发的常用js库
- php模式设计之 中介者模式
- mac 设置环境变量
- 前端组件库大合集-必备收藏
- error: linker command failed with exit code 1 (use -v to see invocation)
- 正则表达式匹配
- 高手详解SQL性能优化十条经验