单链表经典算法 面试题--力扣02.04

 链接:. - 力扣(LeetCode)【点击即可跳转】

思路:创建新链表:大链表和小链表

将pcur节点小于x的值,尾插在小链表中

将pcur节点大于或等于x的值,尾插在大链表中

最终----  return  lessHead->next;

注意:!!!

1.蓝色部分的

greaterTail大链表的尾结点的next指针指向NULL。

否则代码会出现死循环--【超出时间限制】

2.红色箭头部分的

将小链表的尾结点与大链表的第一个有效的 节点首尾相连

lessTail->next=greaterHead->next;

3.判断链表是否为空

代码实现:

typedef  struct ListNode ListNode;
struct ListNode* partition(struct ListNode* head, int x)
{
    if(head==NULL)
    {
        return head;
    }
//创建两个带头链表
 ListNode* lessHead,*greaterHead;
 ListNode* lessTail,*greaterTail;
 lessHead=lessTail=(ListNode*)malloc(sizeof(ListNode));
 greaterHead=greaterTail=(ListNode*)malloc(sizeof(ListNode));
 ListNode* pcur=head; 
//遍历原链表,将原链表中的节点尾插到大小链表中
 while(pcur)
 {
    if(pcur->val<x)
    {        
    //尾插到小链表中
        lessTail->next=pcur;
        lessTail=lessTail->next;
    }
    else
    {
    //尾插到大链表中
        greaterTail->next=pcur;
        greaterTail=greaterTail->next;
    }
    pcur=pcur->next;
 }
 greaterTail->next=NULL;
//大链表尾节点的next指针指向NULL(重要)

lessTail->next=greaterHead->next;
//小链表的尾结点与大链表的第一个有效的节点首尾相连

ListNode* ret=lessHead->next;
 free(lessHead);  //手动释放掉(也可不写)
 free(greaterHead);
 lessHead=greaterHead=NULL;
return ret;
}

感谢观看,如果对你有所帮助的话,点赞支持一下吧^.^

相关推荐

  1. 面试经典之哈希

    2024-05-15 13:16:16       66 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-15 13:16:16       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-15 13:16:16       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-15 13:16:16       82 阅读
  4. Python语言-面向对象

    2024-05-15 13:16:16       91 阅读

热门阅读

  1. Spring Boot学习

    2024-05-15 13:16:16       30 阅读
  2. fastapi+vue实现导出功能

    2024-05-15 13:16:16       31 阅读
  3. 深入理解Qt的信号与槽机制

    2024-05-15 13:16:16       25 阅读
  4. Python3 笔记:range() 函数

    2024-05-15 13:16:16       29 阅读
  5. 【大数据面试题】27 讲下Doris的物化视图

    2024-05-15 13:16:16       33 阅读
  6. CentOS常用命令速览:把握Linux服务器的脉动

    2024-05-15 13:16:16       25 阅读
  7. Milvus 基本概念

    2024-05-15 13:16:16       28 阅读
  8. ListView[new]

    2024-05-15 13:16:16       32 阅读
  9. Linux监控apache脚本

    2024-05-15 13:16:16       30 阅读
  10. php8编译报错

    2024-05-15 13:16:16       36 阅读