2020-8-06 每日刷题札记–分隔链表

2020-8-06 每日刷题札记–分隔链表

在这里插入图片描述
今天的题目比较简单
思路:创建双链表,一个存储小于x的值,一个存储大于x的值,最后再把两个链表连起来,即可

/**
 * 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* before_list = new ListNode(-1);
        ListNode* after_list  = new ListNode(-1);
        ListNode* before = before_list;
        ListNode* after  = after_list;
        while(head)
        {
    
    
            if(head->val < x)
            {
    
    
                before->next = head;
                before = before->next;
            }
            else
            {
    
    
                after->next = head;
                after = after->next;
            }
            head = head->next;
        }
        after->next = NULL;
        before->next = after_list->next;
        return before_list->next; 
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_45336082/article/details/107850509