标签:node 应该 tno struct efi 元素 col solution 辅助
/** * 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) return NULL; //构建两个临时节点来进行辅助 ListNode lessHead(0); ListNode moreHead(0); ListNode *less = &lessHead; ListNode *more = &moreHead; //开始执行 直至结尾 while(head) { if(head->val >= x) { more->next = head; more = head; } else { less->next = head; less = head; } head = head->next; } // 如果lessHead.next不等于空,说明less至少有一个元素,这个时候应该将less->next 和 moreHead.next 连接起来 //这个时候moreHead.next可能为空也可能不为空 如果lessHead.next为空,表明moreHead.next一定不为空。 if(lessHead.next) { less->next = moreHead.next; } //如果more.next不为空,表明more至少有一个元素,这个时候应该将more->next置为NULL, if(moreHead.next) { more->next = NULL; } // 最后的返回 return lessHead.next ? lessHead.next : moreHead.next; } };
标签:node 应该 tno struct efi 元素 col solution 辅助
原文地址:https://www.cnblogs.com/randyniu/p/9308868.html