输入一个链表,反转链表后,输出链表的所有元素。
来源:互联网 发布:淘宝上传视频怎么传 编辑:程序博客网 时间:2024/05/29 02:47
思路1:遍历链表,将链表的所有元素存入一个栈中,从栈中取出元素时,依次得到的就是原链表从尾到头的节点。代码如下:
/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/import java.util.Stack;public class Solution { public ListNode ReverseList(ListNode head) { if(head==null){ return null; } Stack<ListNode> sta = new Stack<ListNode>(); while(head!=null){ sta.push(head); head = head.next; } ListNode newhead = sta.pop(); //指针node ListNode resulthead = newhead; while(!sta.isEmpty()){ newhead.next = sta.pop(); newhead = newhead.next; } newhead.next = null; return resulthead; }}
思路2:依次遍历所有节点,将所有节点的next指向前一个节点,代码如下:
/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode ReverseList(ListNode head) { ListNode pre = null; ListNode next = null; while(head!=null){ next = head.next; //持有下一个节点的引用 head.next = pre; //将当前节点对下一个节点的引用指向前一个节点 pre = head; //将前一个节点指向当前节点 head = next; //将当前节点指向下一个节点 } return pre; } }
0 0
- 剑指offer:输入一个链表,反转链表后,输出链表的所有元素。
- 输入一个链表,反转链表后,输出链表的所有元素。
- 输入一个链表,反转链表后,输出链表的所有元素。
- java 输入一个链表,反转链表后,输出链表的所有元素。
- 输入一个链表,反转链表后,输出链表的所有元素。就地逆转,头插法
- java实现输入一个链表,反转链表后,输出链表的所有元素。
- 输入一个链表,反转链表后,输出链表的所有元素。
- 输入一个链表,反转链表后,输出链表的所有元素。
- 输入一个链表,反转链表后,输出链表的所有元素。
- 输入一个链表,反转链表后,输出链表的所有元素。
- 剑指offer--输入一个链表,反转链表后,输出链表的所有元素。
- 输入一个链表,反转链表后,输出链表的所有元素。
- 反转链表后,输出链表的所有元素。
- 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。
- 输出反转链表
- 链表的建立、输出、非递归反转、递归反转
- 链表指定区间元素的反转
- 给定一个链表,要求每隔k个元素反转
- 《编程之美》- 2.14 - 求数组的子数组之和的最大值
- string in C++98 的用法总结
- C++多继承
- 高并发的下单、抢票等问题解决方法的原理分析
- MFC/浏览文件或文件夹
- 输入一个链表,反转链表后,输出链表的所有元素。
- Box2D C++ 教程-用户数据
- 将数组中的数逆向排列
- struts2设置加载非默认路径的struts.xml文件解决方案+Struts2初学 Struts2的action接收用户数据方式
- hdu 3507 Print Article 斜率优化dp
- MySQL入门--显示表结构的两种方式
- JavaSE入门学习46:文件传输基础之I/O流(五)(Java序列化)
- C语言程序代码编写规范
- 【NYOJ】[46]最少乘法次数