题解 | #链表分割#

链表分割

http://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70

/* struct ListNode { int val; struct ListNode next; ListNode(int x) : val(x), next(NULL) {} };/ class Partition { public: ListNode* partition(ListNode* pHead, int x) { // write code here struct ListNodelessHead,lessTail,greaterHead,greaterTail; //开一个哨兵位头结点,方便尾插 lessHead=lessTail=(struct ListNode)malloc(sizeof(struct ListNode)); lessTail->next=NULL; greaterHead=greaterTail=(struct ListNode)malloc(sizeof(struct ListNode)); greaterTail->next=NULL; struct ListNodecur=pHead; while(cur) { if(cur->val<x) { lessTail->next=cur; lessTail=cur; } else { greaterTail->next=cur; greaterTail=cur; } cur=cur->next; } lessTail->next=greaterHead->next; greaterTail->next=NULL; struct ListNodenewHead=lessHead->next; free(lessHead); free(greaterHead); return newHead; } };

全部评论

相关推荐

努力学习的小绵羊:我反倒觉得这种挺好的,给不到我想要的就别浪费大家时间了
点赞 评论 收藏
分享
11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务