[LeetCode] Reverse Nodes in k-Group
来源:互联网 发布:工地扬尘标准数据 编辑:程序博客网 时间:2024/05/17 04:32
在上一个题的基础上改动了一下,因为内存受限,所以每次都从头寻找指定的节点,并单独实现了一个函数。
可读性比较差,估计过几天就看不懂自己写的了。不知道别人有什么更好的办法。等有空的时候好好研究一下链表的操作。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public ListNode reverseKGroup(ListNode head, int k) { ListNode resultHead = new ListNode(0); resultHead.next = head; ListNode tempHead = new ListNode(-1); tempHead.next = resultHead; ListNode tempEnd = new ListNode(-1); ListNode lastNode = getNextNode(tempHead, k + 1); if (lastNode == null) { return resultHead.next; } while (lastNode != null) { ListNode theNextStart = lastNode.next; tempEnd.next = lastNode; ListNode firstNode = tempHead.next.next; if (firstNode.next != null) { tempHead.next.next = lastNode; for (int j = k - 1; j > 0; --j) { ListNode n = getNextNode(firstNode, j - 1); tempEnd.next.next = n; tempEnd.next = tempEnd.next.next; } tempHead.next = firstNode; firstNode.next = theNextStart; } else { break; } lastNode = getNextNode(tempHead, k + 1); } return resultHead.next; } public ListNode getNextNode(ListNode head, int n) { ListNode result = new ListNode(0); result.next = head; for (int i = 0; i < n; ++i) { result.next = result.next.next; if (result.next == null) { return null; } } return result.next; }}
0 0
- LeetCode:Reverse Nodes in k-Group
- LeetCode: Reverse Nodes in k-Group
- LeetCode : Reverse Nodes in k-Group
- leetcode 42: Reverse Nodes in k-Group
- [Leetcode] reverse nodes in K-Group
- [LeetCode]Reverse Nodes in k-Group
- LeetCode-Reverse Nodes in k-Group
- LeetCode - Reverse Nodes in k-Group
- LeetCode | Reverse Nodes in k-Group
- 【leetcode】Reverse Nodes in k-Group
- Leetcode: Reverse Nodes in k-Group
- leetcode Reverse Nodes in k-Group
- [LeetCode] Reverse Nodes in k-Group
- LeetCode题解: Reverse Nodes in k-Group
- 【Leetcode】Reverse Nodes in k-Group
- LeetCode Reverse Nodes in k-Group
- [Leetcode] Reverse Nodes in k-Group (Java)
- LeetCode(25)Reverse Nodes in K-Group
- Linux下yum命令详解
- 如何查看公众帐号粉丝的微信号
- 十问Android NFC手机上的卡模拟
- 面试题 集合里求k个最大值
- hdu2829之二维斜率优化DP
- [LeetCode] Reverse Nodes in k-Group
- 在Windows中安装ubuntu
- 螺旋方阵
- $(this)
- oracle-awr 操作
- MapReduce的自制Writable分组输出及组内排序
- 上拉刷新 下拉加载
- 二元操作符的返回值
- 初窥O2O模式——实体店体验+线上销售(大部分摘自百度百科)