单链表: 1、反转单链表 public void reverseLinkedList(ListNode head) { ListNode pre = null; while (head != null) { ListNode next = head.next; head.next = pre; pr ...
分类:
其他好文 时间:
2017-03-09 00:00:02
阅读次数:
249
之前写了一个单链表反转,但是使用的新的空间。 这次的反转是不修改原来的结构,直接将节点内的元素进行修改 ...
分类:
其他好文 时间:
2017-02-20 13:21:45
阅读次数:
233
单链表反转问题 基本问题 如何将单链表反转? 算法实现 /** * * 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
单链表的反转问题单链表反转问题经常会遇到。在此记录一下,以便查阅方便。如果反转一个有头结点的使用下面的方法比较合适。//反转单链表,此单链表带有头节点。
//思想:使用tmp临时指针保存头结点与链表的关系
typedefstructListNode
{
intdata;
structListNode*next;
}Lis..
分类:
其他好文 时间:
2016-08-12 21:45:48
阅读次数:
136
1 public class ReverseDemo { 2 3 /** 4 * 单链表反转的两种方法 5 */ 6 public static void main(String[] args) { 7 Node head =new Node("a"); 8 Node node2=new Node(
分类:
其他好文 时间:
2016-02-05 01:23:22
阅读次数:
116
单链表的反转问题是一道很基本的问题。题目如下:
有一个单链表 1 ->2->3->4->5->6 反转后链表为:6->5->4->3->2->1.方法一解析:可以使用三个指针pre ,temp,next对逐个节点进行反转。详细流程如下:
(4) 初始状态pre = head;
tmp = head->next;
pre->next = null;(2)第一次循环:next = tmp->next...
分类:
编程语言 时间:
2015-10-17 00:41:19
阅读次数:
251