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

C语言 分割链表

题目来源:

代码部分,参考官方题解的写法:

// 思路: 就是把原始链表,拆分为2部分,最后再拼接一下。struct ListNode* partition(struct ListNode* head, int x) {struct ListNode* small = malloc(sizeof(struct ListNode));struct ListNode* smallHead = small;struct ListNode* big = malloc(sizeof(struct ListNode));struct ListNode* bigHead = big;while(head != NULL) {if (head->val < x) {small->next = head;small = small->next;   // 这里先确定 small.next 的值。 然后再看 small 自身!!} else {big->next = head;big = big->next;}head = head->next;}// 拼接big->next = NULL;small->next = bigHead->next;return smallHead->next;
}

问题与思考:

  1. 对下面这个写法进行分析:

struct ListNode* small = malloc(sizeof(struct ListNode));
struct ListNode* smallHead = small;

其中 small 是一个指针, 而且申请内存了。
smallHead 也是一个指针,smallHead 其实是把 small 复制一份。
所以这里在命名上,我觉得不应该叫做 smallHead, 叫做 smallCopy 比较合适。

  1. while(head != NULL)

这个写法,能否写成:

while(head)

答案是能。而且也能正常通过。
问题是: 有什么区别??

  1. 第三点已经写在代码注释里面了。

small->next = head;
small = small->next; // 这里先确定 small.next 的值。 然后再看 small 自身!!

small = small->next, 这个写法,其实在python 中就是 head = head.next, 之前写过很多, 就是把节点往下移动,往下传递。
为什么一到 C 语言里面, 就觉得很陌生呢。

http://www.lryc.cn/news/402411.html

相关文章:

  • spring ioc的原理
  • npm安装依赖包报错,npm ERR! code ENOTFOUND
  • 【iOS】——内存对齐
  • 网络安全-网络安全及其防护措施10
  • Pytorch基础应用
  • Axure 教程 | 设置文本框背景透明
  • 【BUG】已解决:NOAUTH Authentication required
  • 全国产服务器主板:搭载飞腾FT2000+/64处理器的高性能加固服务器
  • OPC UA边缘计算耦合器BL205工业通信的最佳解决方案
  • 【已解决】Django连接MySQL启动报错Did you install mysqlclient?
  • ubuntu gcc g++版本切换
  • 如何发一篇顶会论文? 涉及3D高斯,slam,自动驾驶,三维点云等等
  • Java面试八股之什么是Redis的缓存更新
  • 新华三H3CNE网络工程师认证—VLAN使用场景与原理
  • Linux-开机自动挂载(文件系统、交换空间)
  • [003-02-10].第10节:Docker环境下搭建Redis主从复制架构
  • uni-app学习HBuilderX学习-微信开发者工具配置
  • 持续集成08--Jenkins邮箱发送构建信息及测试报告
  • 专题四:设计模式总览
  • 基于X86+FPGA+AI数字化医疗设备:全自动尿沉渣检测仪
  • vue2导入elementui组件库
  • Django定时任务框架django-apscheduler的使用
  • 知识库文档处理,word转markdown
  • TF和TF-IDF区别和联系
  • 02线性表 - 链表
  • 高性能、安全、低碳绿色的趋势下,锐捷网络发布三擎云办公解决方案 3.0
  • python3 shutil排除特定或者模糊匹配文件或目录
  • Spire.PDF for .NET【文档操作】演示:如何在 C# 中切换 PDF 层的可见性
  • 新文件覆盖旧文件还能复原吗?八大excel文档修复软件免费
  • Android 10.0 Launcher3拖拽图标进入hotseat自适应布局功能实现一