leetcode 25. Reverse Nodes in k-Group
来源:互联网 发布:极智seo团队 编辑:程序博客网 时间:2024/05/28 16:14
题意
对链表上的每k个点进行一次转置。
题解
用头插法进行转置并用preNode记录转置前的第一个结点(即转置后的最后一个结点),然后用preNode连接转置后的各个子链表preNode->next = temphead->next;。
代码
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* reverseKGroup(ListNode* head, int k) { if (head == NULL) return NULL; ListNode *iter = head; int nNodes = 0; while (iter) { nNodes++; iter = iter->next; } int times = nNodes / k; //计算转置次数 if(times == 0) return head; ListNode *temphead = new ListNode(0); //临时头结点,用于头插法 ListNode *listhead = NULL; ListNode *preNode = NULL; //记录前一次转置后的最后一个结点 ListNode *nowNode = head; ListNode *nextNode = head->next; for (int i = 0; i < times; i++) { temphead->next = NULL; ListNode *tempNow = nowNode; for (int j = 0; j < k; j++) { nowNode->next = temphead->next; //头插 temphead->next = nowNode; nowNode = nextNode; if (nextNode) nextNode = nextNode->next; } if (i == 0) listhead = temphead->next; else preNode->next = temphead->next; //连接各个子链表 preNode = tempNow; } preNode->next = nowNode; return listhead; }};
0 0
- [LeetCode]25.Reverse Nodes in k-Group
- LeetCode --- 25. Reverse Nodes in k-Group
- LeetCode 25.Reverse Nodes in k-Group
- [Leetcode] 25. Reverse Nodes in k-Group
- 【LeetCode】25.Reverse Nodes in k-Group
- [leetcode] 25.Reverse Nodes in k-Group
- Leetcode-25.Reverse Nodes in k-Group
- leetcode 25. Reverse Nodes in k-Group
- leetcode 25. Reverse Nodes in k-Group
- leetcode 25. Reverse Nodes in k-Group
- leetcode 25. Reverse Nodes in k-Group
- leetCode 25. Reverse Nodes in k-Group
- Leetcode 25. Reverse Nodes in k-Group
- leetcode:25. Reverse Nodes in k-Group
- LeetCode 25. Reverse Nodes in k-Group
- 【leetcode】25. Reverse Nodes in k-Group
- leetcode 25. Reverse Nodes in k-Group
- leetcode 25. Reverse Nodes in k-Group
- 调试板子启动不了
- 0xC0000005: Access Violation
- Android studio通过选择不同的Build Variant执行不同的groovy代码
- 0-1背包问题动态规划
- 参数是数组的引用变量,判断数组是否为空
- leetcode 25. Reverse Nodes in k-Group
- (1)Caesar密码算法的Java实现
- 【面试题】:25匹马比赛问题
- Glide加载和显示图片
- LEETCODE 83
- Bitmap的操作
- Python 10进制与任意进制之间相互转换(最大为62进制)
- iOS学习历程图
- 《C++ Primer Plus》——编程练习答案(2)