博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
秒懂单链表及其反转(reverse)
阅读量:6068 次
发布时间:2019-06-20

本文共 717 字,大约阅读时间需要 2 分钟。

什么是链表,这种是由一组Node组成的,这群Node一起表示了一个序列。链表是最普通,最简单的数据结构(物理地址不连续),它是实现其他数据结构如stack, queue等的基础

链表比起数组来,更易于插入,删除。

Node可以定义如下:

typedef int element_type;  typedef struct node *node_ptr;    struct node {  element_type element;  node_ptr next;  };

 

 

另外关于要不要头节点这个问题,我建议加上头节点,理由如下:

 

1. 没有头节点,删除第一个节点后,不小心就丢失了List
2. 插入头部时,没有个直观的方法。
3. 通常的删除操作,都要先找到前一个节点,如果没有头节点,删除第一个节点就不一样了。

 

接下来重点实现单链表的反转,这也是常常考到的一个问题,下面是实现:

void list_reverse(LIST L)  {      if (L->next == NULL) return;      node_ptr p = L->next, first = L->next;      while (p != NULL && p->next != NULL) {          node_ptr next_node = p->next;          p->next = next_node->next;          next_node->next = first;          first = next_node;      }      L->next = first;  }

 

 

 --

转载地址:http://gmygx.baihongyu.com/

你可能感兴趣的文章
oracle ORA-01840:输入值对于日期格式不够长
查看>>
python基础知识~logger模块
查看>>
SIP入门(二):建立SIPserver
查看>>
Servlet3.0的异步
查看>>
WebService连接postgresql( 失败尝试)
查看>>
从头认识java-13.11 对照数组与泛型容器,观察类型擦除给泛型容器带来什么问题?...
查看>>
Python-MacOSX下SIP引起的pip权限问题解决方案(非取消SIP机制)
查看>>
从MFQ方法到需求分析
查看>>
android.view.WindowManager$BadTokenException: Unable to add window
查看>>
HDU5012:Dice(bfs模板)
查看>>
iphone openssh
查看>>
Linux下MEncoder的编译
查看>>
Xamarin使用ListView开启分组视图Cell数据展示bug处理
查看>>
Javascript中闭包(Closure)的探索(一)-基本概念
查看>>
spark高级排序彻底解秘
查看>>
ylbtech-LanguageSamples-PartialTypes(部分类型)
查看>>
福建省促进大数据发展:变分散式管理为统筹集中式管理
查看>>
开发环境、生产环境、测试环境的基本理解和区别
查看>>
tomcat多应用之间如何共享jar
查看>>
Flex前后台交互,service层调用后台服务的简单封装
查看>>