题解 | #链表分割#

链表分割

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

class Partition {
public:
  	// 方法:
  	// 定义两个链表,一个存储比x大的节点,一个存储比x小的节点。
  	// 使用cur遍历链表,比x大就放到gt链表,比x小就放到lt链表。
  	// 最后将gt链表末尾置空(就是将cur_gt的next指针置空)。并将gt链表接到lt链表的后面。
  	// 拼接和返回的时候,都要注意略过头节点。
    ListNode* partition(ListNode* phead, int x) {
        ListNode* head_gt = new ListNode(-1), *cur_gt = head_gt;
        ListNode* head_lt = new ListNode(-1), *cur_lt = head_lt;
        ListNode* cur = phead;
        while (cur) {
            if (cur->val < x) {
                cur_lt->next = cur;
                cur_lt = cur_lt->next;
            } else {
                cur_gt->next = cur;
                cur_gt = cur_gt->next;
            }
            cur = cur->next;
        }
        cur_gt->next = nullptr;
        cur_lt->next = head_gt->next;
        return head_lt->next;
    }
};

全部评论
刷题写题解不易,球球各位左下角点赞收藏一下吧🥹
点赞 回复 分享
发布于 03-26 00:35 江苏

相关推荐

霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务