反转链表
2016-04-23 12:36
337 查看
题目描述
输入一个链表,反转链表后,输出链表的所有元素。
思路:
题目中没说,当我是按没有头结点做的。从第一个元素截断链表,这两将截断后的两个链表分别称为前面的链表和后面的链表。让后面的链表采用头插入法插入前面的链表。也要注意边界条件。
输入一个链表,反转链表后,输出链表的所有元素。
思路:
题目中没说,当我是按没有头结点做的。从第一个元素截断链表,这两将截断后的两个链表分别称为前面的链表和后面的链表。让后面的链表采用头插入法插入前面的链表。也要注意边界条件。
package cn.yzx.nowcoder; import cn.yzx.nowcoder.FindKthToTail.ListNode; /** * 题目描述 * 输入一个链表,反转链表后,输出链表的所有元素。 * @author yzx * */ public class ReverseList { public static void main(String[] args) { ListNode head = new ListNode(-1); ListNode testList = new ListNode(1); ListNode testList1 = new ListNode(2); ListNode testList2 = new ListNode(3); ListNode testList3 = new ListNode(4); ListNode testList4 = new ListNode(5); head.next = testList; testList.next = testList1; testList1.next = testList2; testList2.next = testList3; testList3.next = testList4; ListNode resNode = ReverseList.ReverseList(head); while(resNode != null){ System.out.print(resNode.val+" "); resNode = resNode.next; } } public static class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public static ListNode ReverseList(ListNode head) { if(head == null) return null; ListNode tmpP = head.next; ListNode tmpS = head.next; head.next = null; while(tmpS != null){ tmpS = tmpS.next; tmpP.next = head; head = tmpP; tmpP = tmpS; } return head; } }
相关文章推荐
- 一个帖子学会Android开发四大组件
- 《day16_多线程细节_Eclipse使用》
- python中的模块
- 【Codevs】1231 最优布线问题 && kruskal模板
- javascript设计模式--Builder
- 3-1 Verilog 4位行为级描述的加法器
- Hexo+github 搭建个人博客
- 还原JavaScript的真实历史~
- Ubuntu系统的安装与使用:[5]深度音乐播放器
- 使用pabot并发执行robotframework的testSuite
- Compile-time Functions
- 架构师的能力模型(图)
- StanfordParser句法分析断句错误
- BZOJ 3181|COCI 2012|Broj|数学|容斥|二分|筛法
- eclipse中 将java项目转换为web项目
- JavaScript类型总览(图)
- 前端要给力之:代码可以有多烂?
- 链表中倒数第k个结点
- 基础DOM和CSS操作(三)
- Android进阶笔记16:onInterceptTouchEvent、onTouchEvent与onTouch