第二十五题 将一个链表 进行每k个元素的逆置,对于剩余不足k的元素,则不进行逆置
明白是一道 加难度的尾插法链表题 对于剩余的不足k的元素不能逆置 之前的元素进行节点的调换,而不是值
首先 解决剩余元素个数不足k,无法逆置的问题:
遍历链表,获取总长度count,进行while判断,每次执行k个元素的逆置,之后count -= k,当count < k时,跳出循环,不再进行逆置
(没有想到的方法)
其次 是对链表中k个元素进行具体逆置的操作,实质就是尾插法:
while(count >= k){ //此处是判断条件
for(int i = 0; i < k -1; i++){
ListNode tmp = cur.next; // 暂存对象
cur.next = head.next;
head.next = cur.next.next;
cur.next.next = tmp;
}
cur = head;
head = head.next; // 转入下一组k;
count -=k;
}