Partition List
来源:互联网 发布:淘宝货架 编辑:程序博客网 时间:2024/06/05 17:26
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
and x = 3,
return 1->2->2->4->3->5
.
#include<stdio.h>#include<stdlib.h>typedef struct ListNode { int val; struct ListNode *next;}ListNode;ListNode *partition(ListNode *head, int x) { ListNode *less = NULL, *bigger = NULL, *p; ListNode *less_index , *bigger_index; int less_cnt = 0, bigger_cnt = 0; if(head == NULL) return NULL; for(p = head; p != NULL; p = p->next) { if(p->val < x) { if(less_cnt == 0) less_index = less = p; else { less_index->next = p; less_index = p; } less_cnt++; } else { if(bigger_cnt == 0) bigger_index = bigger = p; else { bigger_index->next = p; bigger_index = p; } bigger_cnt++; } } if(less != NULL) less_index->next = bigger; else less = bigger; if(bigger != NULL) bigger_index->next = NULL; return less;}void main() { ListNode *head, *p1, *p2; int i = 0; p1 = p2 = (ListNode *)malloc(sizeof(ListNode)); scanf("%d", &p1->val); while(p1->val != -1) { i++; if(i == 1) head = p1; else p2->next = p1; p2 = p1; p1 = (ListNode *)malloc(sizeof(ListNode)); scanf("%d", &p1->val); } p2->next = NULL; for(p1 = head; p1 != NULL; p1 = p1->next) printf("%d ", p1->val); printf("\n"); partition(head, 0);}
0 0
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- Partition List
- HashMap Hashtable区别
- 第 21、22讲 链表、枚举 项目二:猴子选大王(链表)
- hdu 1495 非常可乐 (bfs)
- 轉載:Install DB2 10.5 on Redhat Linux 6.5 for x86_64
- SDIO接口
- Partition List
- LRU Cache [leetcode]
- 关于Mac配置hosts文件
- .Net Remoting 入门教程-原理&&Hello
- 正确的MVC访问流程
- [LeetCode]12.Integer to Roman
- git 指令大全
- AAC ES流如何解码播放
- PLSQL提示ORA-12154: TNS: 无法解析指定的连接标识符