<LeetCode OJ> 61 / 86 Rotate List / Partition List
来源:互联网 发布:为什么阿里云要备案 编辑:程序博客网 时间:2024/05/22 21:18
61 Rotate List
Total Accepted: 69038 Total Submissions: 300765 Difficulty: Medium
Given a list, rotate the list to the right by k places, where k is non-negative.
For example:
Given 1->2->3->4->5->NULL
and k = 2
,
return 4->5->1->2->3->NULL
.
分析:
具体分析见代码,比较简单!
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; *///1,首先获取链表的长度,再根据k计算正序的新链表头//2,建立连接class Solution {public: ListNode* rotateRight(ListNode* head, int k) { if(head==NULL || k==0) return head; int len=0; ListNode* pmove=head; ListNode* pend=NULL; ListNode* pnewhead=NULL; //1,获取链表长度 while(pmove) { len++; pend=pmove;//记录尾节点 pmove=pmove->next; } //2,找到新头的位置 k=k%len;//取余 if(k==0) return head; int nlen=len-k; pmove=head; while(--nlen) pmove=pmove->next; //3,建立连接 pnewhead=pmove->next; pmove->next=NULL; pend->next=head; return pnewhead; }};
86 Partition List
Total Accepted: 67540 Total Submissions: 226814 Difficulty: Medium
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
.
分析:
/** * 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==NULL || head->next==NULL) return head; ListNode node1(0),node2(0);//看到这里就猛然醒悟!!!草... ListNode* pleft=&node1; ListNode* pright=&node2; while(head) { if(head->val < x) { pleft->next=head; pleft=head; } else { pright->next=head; pright=head; } head=head->next; } pleft->next=node2.next; pright->next=NULL; return node1.next; }};
注:本博文为EbowTang原创,后续可能继续更新本文。如果转载,请务必复制本条信息!
原文地址:http://blog.csdn.net/ebowtang/article/details/51422358
原作者博客:http://blog.csdn.net/ebowtang
本博客LeetCode题解索引:http://blog.csdn.net/ebowtang/article/details/50668895
2 0
- <LeetCode OJ> 61 / 86 Rotate List / Partition List
- LeetCode OJ:Rotate List
- LeetCode OJ - Rotate List
- LeetCode OJ Rotate List
- LeetCode OJ:Partition List
- LeetCode OJ - Partition List
- LeetCode OJ Partition List
- 【LeetCode OJ 061】Rotate List
- LeetCode 61: Rotate List
- [leetcode 61] Rotate List
- [leetcode #61]Rotate List
- leetcode || 61、Rotate List
- leetcode[61]:Rotate List
- LeetCode 61: Rotate List
- LeetCode(61) Rotate List
- LeetCode 61 Rotate List
- leetcode 61: Rotate List
- Leetcode#61||Rotate List
- C++虚函数浅析
- 2.redis.conf配置文件参数说明
- poj_2420_A Star not a Tree?
- StreamReader与StreamWriter
- C++静态成员变量和静态成员函数使用总结
- <LeetCode OJ> 61 / 86 Rotate List / Partition List
- HTML5中input元素种类
- 关于dubbo的理解,使用,常见问题以及如何更好的实施服务化
- 最后3000小时,仍然沉住气,不考虑钱,最大的稳定就是自己的能力,而不是某个公司
- 推挽、开漏
- Servlet学习(五)使用Servlet过滤器实现登录权限校验-附源码下载
- 3.Jedis连接方式
- MFC中picture控件中利用OpenCV显示图像
- DUBBO 使用问题记录