输入一个链表,反转链表后,输出链表的所有元素。 一开始我的做法非常复杂,因为我一次变了两个指针,导致要分别判断单数个结点和偶数个结点的情况。 反转链表要解决的两个问题就是 1.结点指向它的前驱 2.头结点变为其尾结点 当反转一个结点时,假设反转i,首先需要记录它的前驱,让它指向它的前驱...
分类:
其他好文 时间:
2015-10-19 17:11:12
阅读次数:
184
单链表的反转问题是一道很基本的问题。题目如下:
有一个单链表 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
Reverse a singly linked list.做II之前应该先来做1的,这个导师很简单,基本上不用考虑什么,简单的链表反转而已: 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * i...
分类:
其他好文 时间:
2015-10-13 13:48:38
阅读次数:
130
本文中的双向链表,具有一个首指针h,但没有尾指针,不是循环链表。链表反转时,要做两件事情,一是将数据部分的pre指针和next指针交换值;二是将h指针指向反转后的头数据节点指针,并将新链表的尾数据节点指针的next(即原链表头数据指针的next)置空。 上代码: DLinkedNode.h #ifn...
分类:
其他好文 时间:
2015-10-10 00:20:38
阅读次数:
219
从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,最后将第一个节点挪到新表的表尾。Node* ReverseList(Node* head) { Node *p,*q; p=head->next; while(p->next!=NULL) //在这个循环过程中p所指的元素一直是不变的 { q=p...
分类:
其他好文 时间:
2015-09-23 17:05:17
阅读次数:
175
本文介绍两种方法单向链表反转。记录,如下面:1.package com.leetcode;public class ListReverse { public static void main(String[] args) { Node node1 = new Node(1); Node node.....
分类:
编程语言 时间:
2015-09-19 21:13:34
阅读次数:
149
反转链表
参与人数:1754时间限制:1秒空间限制:32768K通过比例:28.31%最佳记录:0 ms|8552K(来自 pgxxhh)
题目描述
输入一个链表,反转链表后,输出链表的所有元素。
题目链接:http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca?rp=1&ru=/ta...
分类:
其他好文 时间:
2015-09-07 12:58:41
阅读次数:
142
(1)有1到n的链表,改成1,n-1,2,n-2,3,n-3……的链表
解答:把后半部分链表反转(怎么找后半部分,设两指针,一个走一步,一个走两步即可),然后设两指针,1指向n-1,n-2指向2,2指向n-2……即可。
(2)双向队列的的源码实现……
解答:双向链表,内存问题,链表结点池,池取出全部后,要重新new,所以要有维护池的东东……
(3)n个数里面取出前20小的数,有多少种方法,...
分类:
其他好文 时间:
2015-08-31 23:44:31
阅读次数:
209