您的位置:首页 > 其它

LeetCode Partition List

2014-11-27 17:26 399 查看
链接: https://oj.leetcode.com/problems/partition-list/
双重指针......

/**
* 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)
{

ListNode **t1,**t2;
ListNode *ans1=NULL,*ans2=NULL;
bool s1,s2;
if(head==NULL)
return ans1;
for(s1=true,s2=true;head!=NULL;head=head->next)
{
ListNode *t=NULL;
if(head->val<x)
{

if(s1)
{
t=new ListNode(head->val);
t1=&t;
ans1=t;
s1=false;
}
else
{
*t1=new ListNode(head->val);
}
t1=&((*t1)->next);
}
else
{

if(s2)
{
t=new ListNode(head->val);
t2=&t;
ans2=t;
s2=false;
}
else
{
*t2=new ListNode(head->val);
}
t2=&((*t2)->next);

}
}
if(s1)
return ans2;
if(s2)
return ans1;
*t1=ans2;
return ans1;
}
};

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode