1 package jzoffer; 2 3 /** 4 * Created by sakura on 2018/3/18. 5 */ 6 class Node { 7 String val; 8 Node next; 9 Node(String val) { 10 this.val = val; ... ...
分类:
其他好文 时间:
2018-03-18 15:04:20
阅读次数:
153
下图展示了单链表的基本结构: head指针是链表的头指针,指向第一个节点,每个节点的next指针域指向下一个节点,最后一个节点的next指针域为NULL,在图中用0表示。 下面先来看程序(栈的链式存储实现,另外一个实现点这里)和对应的输出(注意输出前进行了链表反转(见《单链表反转》,否则程序后面的w ...
分类:
其他好文 时间:
2018-02-26 11:23:21
阅读次数:
226
#ifndef MYLIST_H #define MYLIST_H #include class Node { public: Node(int v){value = v;next=NULL;} int value; Node * next; }; class List { public: List... ...
分类:
其他好文 时间:
2018-01-21 00:10:51
阅读次数:
194
据说单链表反转问题面试中经常问,而链表这个东西相对于数组的确稍微难想象,因此今天纪录一下单链表反转的代码。 1,先定义一个节点类。 2,我一共写了三种方法 (1)迭代法。先将下一节点纪录下来,然后让当前节点指向上一节点,再将当前节点纪录下来,再让下一节点变为当前节点 (2)递归方法1。先找到最后一个 ...
分类:
编程语言 时间:
2017-09-08 14:41:54
阅读次数:
158
删除当前节点 :将当前节点的下一节点值附给当前节点,然后删除当前节点的下一节点,这样就等效为删除当前接节点了。 单链表反转 ...
分类:
其他好文 时间:
2017-08-19 00:51:06
阅读次数:
172
链表常用操作——反转 我们先来定义一个单链表的节点类 实现单链表反转共有两种方法 1、使用递归,从后往前反转。从头结点开始,往后查找直到找到尾节点为止,然后开始反转。 2、使用遍历,从前往后反转。先保存下个节点,然后将将当前节点指向前个节点,然后在将节点向下移动继续循环进行下次反转。 刚做完在线编程 ...
分类:
其他好文 时间:
2017-07-05 15:53:53
阅读次数:
202
今天会介绍另外一种反转单链表的方法,对于单链表反转这一类的算法,最重要的思想就是用临时变量来记住需要记住的节点。一个不够,那就用两个,或者用三个临时变量。 这次还是以图表来表现算法的过程,不同于上一篇,这次的头节点使用链表中的第一个节点。 该方法的思想就是遍历每个节点,将其插入到第一个节点之后。 如 ...
分类:
其他好文 时间:
2017-06-11 15:43:21
阅读次数:
197
1定义 单链表node的数据结构定义如下: 2 方法1:就地反转法 2.1 思路 把当前链表的下一个节点pCur插入到头结点dummy的下一个节点中,就地反转。 dummy->1->2->3->4->5的就地反转过程: 2.2 解释 1初始状态 2 过程 pCur是需要反转的节点。 伪代码 3 循环 ...
分类:
其他好文 时间:
2017-05-16 12:51:10
阅读次数:
148
1, 非递归方式 List* ListRevert(List* list){ List* head = NULL; //new list head List* temp = NULL; while (list!= NULL){ //each time pick up a node from the ...
分类:
其他好文 时间:
2017-04-17 00:23:16
阅读次数:
149
#include #include #include "string.h" #include "stdio.h" #include #include #include using namespace std; struct ListNode { int val; struct ListNode *n... ...
分类:
其他好文 时间:
2017-03-21 12:19:12
阅读次数:
210