链表反转有两种常见方式。下面从图中详细解释。其中带有部分核心代码,最后上完整代码。 迭代法 //首先定义三个变量 PNODE pre = NULL; PNODE now = pHead->pNext; PNODE next = NULL; next = now->pNext;//先保存下一个节点 n ...
分类:
其他好文 时间:
2016-11-23 06:46:03
阅读次数:
326
单链表反转问题 基本问题 如何将单链表反转? 算法实现 /** * * Description: 单链表反转. * * @param head * @return ListNode */ public static ListNode reverseList(ListNode head) { if (... ...
分类:
其他好文 时间:
2016-11-04 23:39:53
阅读次数:
220
current= head; pre = null; while(current != null){ // 先保存一下下一个节点,然后再修改next指针 next = current.next; current.next = pre; pre = cur; current= next; } 思路: ...
分类:
其他好文 时间:
2016-10-10 20:41:55
阅读次数:
107
一. 先画一个单链表,这个单链表有4个元素。思路就是,每次把第二个元素提到最前面来。比如下面是第一次交换,我们先让头结点的next域指向结点a2,再让结点a1的next域指向结点a3,最后将结点a2的next域指向结点a1,就完成了第一次交换。 第一次交换 然后进行相同的交换将结点a3移动到结点a2 ...
分类:
其他好文 时间:
2016-10-05 19:39:26
阅读次数:
116
普通的单链表反转算法 大学的时候也做过好几次单链表的反转,记得当时都是用三个变量不断修改next的值然后实现反转。 1 ListNode* reverseList(ListNode* head) { 2 ListNode *pre = NULL,*tmp,*cur = head; 3 while(c ...
分类:
编程语言 时间:
2016-09-24 19:02:03
阅读次数:
198
输入一个链表,反转链表后,输出链表的所有元素。 ...
分类:
其他好文 时间:
2016-09-17 10:38:18
阅读次数:
144
题目: 给定两个单链表,单链表中的数都是非负数。链表中的数字都是反向存储的,,每个节点都是个位数,将链表对应的位相加,返回最终的结果; 举例: Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)Output: 7 -> 0 -> 8 解题思路: 其本质是将链表1和链表2反转之后 ...
分类:
其他好文 时间:
2016-09-17 01:51:51
阅读次数:
127