指针三剑客之一:链表

链表是由节点指针构成的数据结构,每个节点存有一个值,和一个指向下一个节点 的指针,因此很多链表问题可以用递归while迭代来处理。

链表可以实现分散存储,不同于数组,链表并不能直接获取任意节点的值, 必须要通过指针找到该节点后才能获取其值。

说白了,玩链表本质就是玩指针。下面列出常见的链表算法

一.反转链表

核心:插入新链表头部。其他方法:放入栈中

 

 二.从尾到头打印链表

 

 三.删除链表的节点

核心:提前判断

 

 四.合并两个排序的链表

核心:巧妙使用递归,让他们自己排队

 

五.相交链表

其他方法:哈希表

  

六.复杂链表的复制

 核心:哈希表:把所有信息放入哈希表中,最后连接。有点算赖的感觉

    拼接:复制一份双倍的链表,连接完之后删除没用的节点

 

 七.两数相加

核心:考虑进位

 

 八.二叉搜索树与双向链表

 核心:二叉搜索树的中序遍历为递增序列,只需要定义一个pre记录前一个节点就可以实现双向链表了

 

 

寄语:当你打算放弃梦想时,告诉自己再多撑一天,一个星期,一个月,再多撑一年吧,你会发现,拒绝退场的结果令人惊讶。

 

posted @ 2022-01-17 13:11  小猴子_X  阅读(89)  评论(0编辑  收藏  举报