一次過,鏈表題無難度
1
/*
*
2
* Definition for singly-linked list.
3
* struct ListNode {
4
* int val;
5
* ListNode *next;
6
* ListNode(int x) : val(x), next(NULL) {}
7
* };
8
*/
9
class
Solution {
10
public
:
11
ListNode *partition(ListNode *head,
int
x) {
12
//
Start typing your C/C++ solution below
13
//
DO NOT write int main() function
14
ListNode *less, *larger, *p, *q, *
ret;
15
less = larger = p = q = ret =
NULL;
16
while
(head) {
17
if
(head->val <
x) {
18
if
(!
less) {
19
less =
new
ListNode(head->
val);
20
p =
less;
21
}
22
else
{
23
p->next =
new
ListNode(head->
val);
24
p = p->
next;
25
}
26
}
27
else
{
28
if
(!
larger) {
29
larger =
new
ListNode(head->
val);
30
q =
larger;
31
}
32
else
{
33
q->next =
new
ListNode(head->
val);
34
q = q->
next;
35
}
36
}
37
head = head->
next;
38
}
39
if
(!less) ret =
larger;
40
if
(!larger) ret =
less;
41
if
(less &&
larger) {
42
p->next =
larger;
43
ret =
less;
44
}
45
return
ret;
46
}
47
};
?C#
1
/*
*
2
* Definition for singly-linked list.
3
* public class ListNode {
4
* public int val;
5
* public ListNode next;
6
* public ListNode(int x) { val = x; }
7
* }
8
*/
9
public
class
Solution {
10
public
ListNode Partition(ListNode head,
int
x) {
11
ListNode less =
null
, larger =
null
, p =
null
, q =
null
, ans =
null
;
12
while
(head !=
null
) {
13
if
(head.val <
x) {
14
if
(less ==
null
) {
15
less =
new
ListNode(head.val);
16
p =
less;
17
}
18
else
{
19
p.next =
new
ListNode(head.val);
20
p =
p.next;
21
}
22
}
23
else
{
24
if
(larger ==
null
) {
25
larger =
new
ListNode(head.val);
26
q =
larger;
27
}
28
else
{
29
q.next =
new
ListNode(head.val);
30
q =
q.next;
31
}
32
}
33
head =
head.next;
34
}
35
if
(less ==
null
) ans =
larger;
36
if
(larger ==
null
) ans =
less;
37
if
(less !=
null
&& larger !=
null
) {
38
p.next =
larger;
39
ans =
less;
40
}
41
return
ans;
42
}
43
}
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

