剑指offer-反转链表
2016-03-13 13:43
363 查看
题目描述
输入一个链表,反转链表后,输出链表的所有元素。方法1:将单链表储存为数组,然后按照数组的索引逆序进行反转。
方法2:使用三个指针遍历单链表,逐个链接点进行反转。
方法3:从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,最后将第一个节点挪到新表的表尾。
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListNode ReverseList(ListNode head) { ListNode pReversedHead=head; ListNode pNode=head; ListNode pPrev=null; while(pNode!=null){ ListNode pNext=pNode.next; if(pNext==null){ pReversedHead=pNode; } pNode.next=pPrev; pPrev=pNode; pNode=pNext; } head=pReversedHead; return head; } }
相关文章推荐
- 剑指offer-链表中倒数第k个结点
- 剑指offer-二进制中1的个数
- 剑指offer-矩形覆盖
- js基础与DOM
- node模块机制与异步处理详解
- JavaScript控制页面显示和隐藏带案例
- javascript继承
- 剑指offer-二叉搜索树与双向链表
- javascript常识
- Javascript中各种高度宽度解读
- Reactor
- 剑指offer-复杂链表的复制
- Three.js的轻量级封装框架Sim.js解析(1)
- caffe 输出重定向, 双重输出重定向
- 剑指offer:数组中只出现一次的数字
- 模块化-MVC与MVVM
- JavaScript事件
- 关于caffe做分类的classification.cpp
- js arguments对象的简单理解
- JS中创建函数的三种方式及区别