链表划分-LintCode
来源:互联网 发布:腾讯云免费域名 编辑:程序博客网 时间:2024/05/19 11:17
描述:
给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。
你应该保留两部分内链表节点原有的相对顺序。
样例:
给定链表 1->4->3->2->5->2->null,并且 x=3
返回 1->2->2->4->3->5->null
思路:
这个题我们可以建立两个新的链表left和right;
遍历给定链表,判断每个节点val的值,把小于x的节点用尾插法插入到left里,把大于等于x的节点用尾插法插入到right里,
最后将right接在left后面就好了~
/** * Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNode(int val) { * this->val = val; * this->next = NULL; * } * } */class Solution {public: /** * @param head: The first node of linked list. * @param x: an integer * @return: a ListNode */ ListNode *partition(ListNode *head, int x) { // write your code here if(head==NULL) return NULL; ListNode *leftDummy=new ListNode(0); ListNode *rightDummy=new ListNode(0); ListNode *left=leftDummy; ListNode *right=rightDummy; while(head!=NULL) { if((head->val)<x) { left->next=head; left=left->next; } else { right->next=head; right=right->next; } head=head->next; } right->next=NULL; left->next=rightDummy->next; return leftDummy->next; }};
0 0
- LintCode-链表划分
- LintCode:链表划分
- Lintcode 链表划分
- LintCode 链表划分
- 链表划分-LintCode
- LintCode : 链表划分
- 链表划分-LintCode
- LintCode 96. 链表划分
- lintcode 96 链表划分
- [LintCode]96.链表划分
- LintCode Partition List 链表划分
- lintcode——链表划分
- [LintCode 96] 链表划分(Python)
- lintcode&九章算法——Lintcode No.96. 链表划分 ? 待解决
- LintCode-数组划分
- LintCode 数组划分
- LintCode:数组划分
- LintCode 数组划分
- 170323 PyQt5 ListWidget的删除
- RTSP/RTP/RTCP学习
- 树莓派.config的提取和NFS的安装
- 剑指offer-二叉树的深度-php
- qsort用法--完整版(解释了cmp)【转】
- 链表划分-LintCode
- xml读取并转存到map中
- ubuntu16.0.2LTS下编译OpenJDK7
- MySql中常用的hint
- python读取xls文件
- 【maven】9、pom.xml介绍(二)
- 订阅与发布的实现与应用
- POJ 3650 The Seven Percent Solution
- JavaScript学习-Array的方法