免费扑克网站代码,租二级目录做网站,阜宁做网站的价格,安踏网站建设策划方案题目
给你链表的头节点 head #xff0c;每 k 个节点一组进行翻转#xff0c;请你返回修改后的链表。
k 是一个正整数#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍#xff0c;那么请将最后剩余的节点保持原有顺序。
你不能只是单纯的改变节点内…题目
给你链表的头节点 head 每 k 个节点一组进行翻转请你返回修改后的链表。
k 是一个正整数它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍那么请将最后剩余的节点保持原有顺序。
你不能只是单纯的改变节点内部的值而是需要实际进行节点交换。
示例 1
输入head [1,2,3,4,5], k 2 输出[2,1,4,3,5]
解
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/
class Solution {public ListNode reverseKGroup(ListNode head, int k) {if (head null || head.next null) {return head;}ListNode dummy new ListNode(0);dummy.next head;int count 0;ListNode pre dummy;ListNode cur head;ListNode next null;while (cur ! null) {next cur.next;count;if (count k) {ListNode p1 pre.next;ListNode p2 cur;p2.next null;reverse(p1);pre.next p2;p1.next next;pre p1;count 0;}cur next;}return dummy.next;}public void reverse(ListNode head) {if (head null || head.next null) {return;}ListNode pre null;ListNode cur head;ListNode next null;while (cur ! null) {next cur.next;cur.next pre;pre cur;cur next;}}
}