当前位置: 首页 > java >正文

单链表经典算法题之分割链表

给定一个头结点和一个值x,是链表中所有小于x的值都在x前面

 typedef struct ListNode ListNode;

struct ListNode* partition(struct ListNode* head, int x) {

    //思路一:在原链表上进行修改

    //思路二:创建新链表,使用哨兵位,比x大的尾插,比x小的头插

    //思路三:创建两个链表,一个是大链表,一个是小链表,都整一个哨兵位

    if(head == NULL)

    {

        return head;

    }

    ListNode* lesshead = (ListNode*)malloc(sizeof(ListNode));

    ListNode* greaterhead = (ListNode*)malloc(sizeof(ListNode));

    ListNode* lesstail = lesshead;

    ListNode* greatertail = greaterhead;

    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指针初始化

    lesstail->next = greaterhead->next;

    ListNode* ret = lesshead->next;

   

    free(lesshead);

    free(greaterhead);

    lesshead = greaterhead = NULL;

    return ret;

}

//超出时间限制只有一种情况:就是代码出现了死循环

//创建新链表时,若进行尾插,则要考虑

http://www.xdnf.cn/news/13702.html

相关文章:

  • 操作系统——第五章(I/O设备)
  • 【AUTOSAR COM Eth】Service Discovery (SD) 模块技术解析
  • 面试遇到的商城项目相关问题总结
  • 【Python基础】Python中字典知识点梳理
  • 预训练CNN网络的迁移学习(MATLAB例)
  • 在线机考|2025年华为暑期实习春招秋招编程题(最新)——第1题_物流运输
  • 【leetcode】104. 二叉树的最大深度
  • Spring上下文模块设计
  • 高防IP是怎么防御的?高防IP的防御步骤又有哪些?
  • SKE 与 SM2、SM3、SM4 的关系 ,SPDM协议的详细解析
  • 【Bitcoin基础】比特币的地址格式有哪些?如何应用?
  • 如何正确评估服务器CPU/内存/IO利用率 (性能过剩or瓶颈)
  • Spring涉及的设计模式以及实际使用场景(含代码)
  • 汽车电池智造关键一环!DeviceNet转Modbus RTU网关的实战突围
  • pod重启次数过多怎么排查
  • 数据结构 散列表 学习 2025年6月12日15:30:48
  • 旧物新生,绿色领航——旧物二手回收软件开启资源循环新篇章
  • 超维智联 质胜千里:晨控 RFID 驱动汽车后视镜智造跃迁
  • 离婚房产分割折价款计算的司法裁判策略
  • 13.15 LLaMA 3+LangChain重构语法学习:可视化语法树+智能纠错让效率翻倍!
  • VScode使用npm启动项目以及npm install ,npm start报错问题处理
  • ThreadLocal原理及内存泄漏分析
  • EVNIA 27M2N3500UK显示器荣膺TÜV莱茵圆偏光认证,树立健康显示新标杆
  • Web 架构之 Kubernetes 弹性伸缩策略设计
  • CHI协议验证中的异常及边界验证
  • 输电线防山火在线监测装置:科技赋能电网安全防线
  • 泛微OAe9-自定义资源看板
  • 纯血HarmonyOS ArKTS NETX 5 打造小游戏实践:大鱼吃小鱼(附源文件)
  • G1周打卡——GAN入门
  • 考研系列—408真题操作系统篇(2015-2019)