Leetcode 25. Reverse Nodes in k-Group 题目描述:就是在前一题翻转2个链表节点的题目上变成翻转k个位置。 题目链接:Leetcode25.ReverseNodesink-Group代码如下 参考链接 数据结构面试题oj练习 题oj链接:https://leetcode-cn.com/problems/remove-linked-list-elements/description/ 总结: 做这道题,一定要注意返...
*/classSolution{publicListNodereverseKGroup(ListNode head,intk){// boundary judgementbooleanhasNoOrOneNode=(head ==null|| head.next ==null);if(hasNoOrOneNode || k ==1) {returnhead; }ListNodedummy=newListNode(-1); dummy.next = head;ListNodebegin=dummy;inti=0;while(head !=null) { ++i...
SOLUTION 1 用递归实现,逐层进行反转。遇到最后一个如果个数不为k,再反转一次即可。 View Code SOLUTION 2 另一个思路的递归: 先查看有没有k个node,如果有,切开2个链表,反转当前链表,并且使用递归处理下一个section,最后再把2者连接起来即可。 View Code SOLUTION 3 使用一个专用的反转函数来进行反转,从头到尾...
secondHead.next=reverseKGroup(head, k);returnpre; }publicintgetSize(ListNode head) {intsize = 0;while(head !=null) { size++; head=head.next; }returnsize; } } 改进版本如下,这个版本里不用遍历整个list来求length,所以快了很多。 这个的思路是,直接找到第k+1个node,放到递归里去,返回新的list...
* }*/publicclassSolution {publicListNode reverseKGroup(ListNode head,intk) {if(head ==null){returnnull; } ListNode returnNode=head; ListNode pre=newListNode(0);inttimes = 0;while(head !=null){ ListNode tail=head;for(inti = 0; i < k - 1; i++){if(tail.next ==null){returnreturn...
从头节点到尾节点,依次翻转K个节点,翻转K个节点时,记录K个翻转后节点的头节点指针和尾节点指针。 C++代码 class Solution { public: ListNode* reverseKGroup(ListNode* head,intk) { ListNode*p,*q1=head,*lastNode=head,*q2,*last;if(!head||k==0)returnhead; ...
second = first->next;//reverse the K nodefor(inti =1; i < k; ++i) { second_last = second->next; second->next = pre_first->next; pre_first->next = second; first->next = second_last; second = second_last; } pre_first = first; ...
classSolution {public: ListNode*reverseKGroup(ListNode *head,intk) { ListNode*newHead =newListNode(0); newHead->next =head;intcnt =0; ListNode*cur_node =head; ListNode*last_tail =newHead;while(cur_node) { cnt++;if(cnt ==k) { ...
子函数先将一个链表反转,然后在主函数里调用。链表的反转基本上四个语句就搞定了,自己想死也想不出来啊。不过算是学习了。以后碰到类似的应该要会利用。参考了一位java的代码。这里我改成了C++的代码。java的主页在http://www.cnblogs.com/lichen782/p/leetcode_Reverse_Nodes_in_kGroup.html。
1classSolution {23publicListNode reverseKGroup(ListNode head,intk) {4if(k == 0 || k == 1 || head ==null) {5returnhead;6}7intlength = 0;8ListNode current =head;9while(current !=null) {10current =current.next;11length++;12}13ListNode dummy =newListNode(1);14dummy.next =head;15...