# Partition List

809人阅读 评论(0)

## 题目描述

Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.

You should preserve the original relative order of the nodes in each of the two partitions.

For example,
Given 1->4->3->2->5->2->null and x = 3,
return 1->2->2->4->3->5->null.

## 链接地址

http://www.lintcode.com/en/problem/partition-list/

## 解法

  ListNode *partition(ListNode *head, int x) {
ListNode *dummyNode1 = new ListNode();
dummyNode1->next = NULL;
ListNode *dummyNode2 = new ListNode();
dummyNode2->next = NULL;
ListNode *cur1 = dummyNode1;
ListNode *cur2 = dummyNode2;
while (cur != NULL) {
if (cur->val < x) {
cur1->next = cur;
cur1 = cur1->next;
}else{
cur2->next = cur;
cur2 = cur2->next;
}
cur = cur->next;
}
cur2->next = NULL;
cur1->next = dummyNode2->next;
return dummyNode1->next;
}
0
0

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：318865次
• 积分：5119
• 等级：
• 排名：第5385名
• 原创：196篇
• 转载：4篇
• 译文：0篇
• 评论：11条
阅读排行
评论排行
最新评论