链表][双指针]leetcode86:分隔链表(medium)"/>
[链表][双指针]leetcode86:分隔链表(medium)
题目:
题解:
- 双指针法
- before链表用来存放比x小的节点,after节点用来存放比x大的节点。注意要设置头节点,因为这样可以减少判断条件。
代码如下:
class Solution {
public://双指针法,before链表存放比x小的节点,after存放比x大的节点ListNode* partition(ListNode* head, int x) {//初始化链表,注意这里的头节点好处是减少条件判断ListNode* before_head=new ListNode(0);ListNode* before=before_head;ListNode* after_head=new ListNode(0);ListNode* after=after_head;//用head来遍历原始链表while(head!=nullptr){if(head->val<x){before->next=head;before=before->next;}else{after->next=head;after=after->next;}head=head->next;}after->next=nullptr;before->next=after_head->next;return before_head->next;}
};
更多推荐
[链表][双指针]leetcode86:分隔链表(medium)
发布评论