LeetCode 206. Reverse Linked List
2016-05-21 23:20
344 查看
问题
Reverse a singly linked list.public class Solution206 { public static void main(String args[]){ Solution206 solution206 = new Solution206(); ListNode listNode1 = new ListNode(1); ListNode listNode2 = new ListNode(2); ListNode listNode3 = new ListNode(3); ListNode listNode4 = new ListNode(4); listNode1.next = listNode2; listNode2.next = listNode3; listNode3.next = listNode4; ListNode head = solution206.reverseList(listNode1); System.out.println(head.val); System.out.println(head.next.val); System.out.println(head.next.next.val); System.out.println(head.next.next.next.val); } /** * 创建一个新的链表,是倒序的 */ public ListNode reverseList(ListNode head) { if(head==null || head.next==null){ return head; } int length=0; ListNode currentNode = head; while(true){ if(currentNode.next!=null){ currentNode = currentNode.next; length++; }else{ break; } } ListNode newNode = new ListNode(currentNode.val); ListNode firstNode = newNode; for(int i=0;i<length;i++){ int value = getNodeValue(head, length-i); newNode.next = new ListNode(value); newNode = newNode.next; } return firstNode; } public int getNodeValue(ListNode head, int n) { for(int i=1;i<n;i++){ head = head.next; } return head.val; } // /** // * 解析答案 // */ // public ListNode reverseList(ListNode head) { // // ListNode pre = null; // ListNode current = head; // while(current!=null){ // ListNode next_temp = current.next; // current.next = pre; // pre = current; // current = next_temp; // } // return pre; // } public static class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } }
相关文章推荐
- vs2010 c++ CString to long
- leetcode -Remove Element
- 深入Java集合类
- 关于java中jsp和servlet传值的问题
- 杭电OJ 1008 应该全面考虑问题
- OpenCV 开发环境环境搭建(win10+vs2015+opencv 3.0)
- phpstorm 的一些常用设置
- Oscdimg 命令行选项
- Java 利用异常 求和
- hdu2519:新生晚会
- Android——View事件分发机制
- 菜鸟上路 杭电OJ 1007 求平面上两点之间最短距离--分而治之以及关键点的考虑
- 11G RAC重建ASM实例的SPFILE
- Qtcreator 调试cmake
- many-to-many
- 洛谷比赛有感
- 快速掌握Makefile
- [BZOJ1004][HNOI2008]Cards(置换群+背包+乘法逆元)
- 浅谈JVM的实现与垃圾回收机制
- 堆排序——java