LeetCode 刷题日记 25

第二十五题 将一个链表  进行每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;

}

猜你喜欢

转载自www.cnblogs.com/tiansiyuan-program/p/9762845.html