题目6 输入一个链表的头节点,从尾到头反过来打印出每个结点的值 思路 1.使用递归。逆序打印a->b->c->d,可以先逆序打印b->c->d(看成新的链表),再打印a;那么同样逆序可以先逆序打印c->d,再打印b;直到打印到尾节点。 2.使用栈。栈具有后进先出的特点,刚好符合逆序要求。遍历链表时将 ...
分类:
其他好文 时间:
2020-01-16 22:03:44
阅读次数:
68
下面是个单链表,且无序的实现代码. 需要注意的是有个head节点, 该节点不存储数据,只是表示链表的头节点. public class SingleLinkedListDemo { public static void main(String[] args) { //先创建几个节点 Node nod ...
分类:
其他好文 时间:
2020-01-03 00:02:18
阅读次数:
67
单链表的常见面试题有如下: 1. 求单链表中有效节点的个数 代码如下: 1 //方法:获取到单链表的节点的个数(如果是带头节点的链表,需求不统计头节点) 2 /** 3 * @param head 链表的头节点 4 * @return 返回的就是有效节点的个数 5 */ 6 public stati ...
分类:
其他好文 时间:
2019-12-29 21:53:45
阅读次数:
50
链表 链表是以节点的方式来存储 每个节点包含data域和next域,指向下一个节点 链表的各个节点不一定是连续存储 链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定 单向列表 最大特点是可以将物理地址上不连续的数据连接起来,通过指针来对物理地址进行操作,实现增删改查等功能。 单链表分为两 ...
分类:
编程语言 时间:
2019-12-28 13:29:30
阅读次数:
83
题目: 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 分析: 利用快慢指针,如果链表中存在环的话,则快指针一定在环中的某个节点与慢指针相遇。 设头节点到链表的环的入口结点的结点个数为p,入口结点到两指针相遇结点的结点个数为a,相遇结点到入口结点的结点个数为b。 快指针每 ...
分类:
编程语言 时间:
2019-12-26 11:26:04
阅读次数:
87
剑指offer-18-2. 删除链表中重复的结点链表在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路:采用递归的方法查找从头节点开始重复的节点如果没有重复节点,pHead.... ...
分类:
其他好文 时间:
2019-12-26 00:04:53
阅读次数:
86
非递归的代码: 1. 首先添加一个头节点,以方便碰到第一个,第二个节点就相同的情况 2.设置 pre ,last 指针, pre指针指向当前确定不重复的那个节点,而last指针相当于工作指针,一直往后面搜索。 public class ListNode { int val; ListNode nex ...
分类:
编程语言 时间:
2019-12-23 22:11:09
阅读次数:
110
题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 这道题也是很基础的一道题,当两个链表都有值时,也就是它们都不为空时,我们需要对比它们表头的大小,让新链表指向值小的那个链表。这里需要给新链表定义一个虚拟头节点。指向操作完成后,让值小的那个链表往前走一 ...
分类:
编程语言 时间:
2019-12-21 20:20:42
阅读次数:
84
链表(Linked List)介绍 链表是有序的列表,但是它在内存中是存储如下: 小结: 链表是以节点的方式来存储,是链式存储。 每个节点包含 data域 , next域 : 指向下一个节点。 如图:发现链表的各个节点不一定是连续存储。 链表分带头节点的链表 和 没有带头节点的链表,根据实际的需求来 ...
分类:
其他好文 时间:
2019-12-19 23:35:01
阅读次数:
115
代码: /* *带头节点的单链表 */ #include<iostream> #include<stdlib.h> using namespace std; typedef struct ListNode { int data; struct ListNode* next; } Node,*PNod ...
分类:
其他好文 时间:
2019-12-19 12:43:39
阅读次数:
88