LeetCode题目-25

首页 编程分享 LEET_CODE 正文

leetCode 转载 编程分享 2021-12-04 14:49:35

简介 LeetCode题目-25


✏Leetcode之PHP版题目解析(25. Reverse Nodes in k-Group)


✏描述

给定一个链表,以k为一组,翻转链表,返回新的链表。如果当前链表节点数不足k的时候那就不必翻转了。


✏题目实例


✏题目分析

既然k决定了每次翻转的个数,以及最后不需要翻转的元素。我们可以先求出链表元素的个数。这个作为判断依据,每次翻转当前范围内的链表,记录最后的位置。


✏解法一


/**
 * Definition for a singly-linked list.
 * class ListNode {
 *     public $val = 0;
 *     public $next = null;
 *     function __construct($val) { $this->val = $val; }
 * }
 */
class Solution {

    /**
     * @param ListNode $head
     * @param Integer $k
     * @return ListNode
     */
    function reverseKGroup($head, $k) {
        $dummy=new ListNode(-1);
        $pre=$cur=$dummy;
        $dummy->next=$head;
        $num=0;
        while($cur=$cur->next) ++$num;
        while($num>=$k){
            $cur=$pre->next;  
            for($i=1;$i<$k;++$i){
                $t=$cur->next; 
                $cur->next=$t->next; 
                $t->next=$pre->next; 
                $pre->next=$t;
         }
            $pre=$cur;
            $num -=$k;
        }
        return $dummy->next;
        
    }
}


转载链接:https://leetcode.cn/


Tags:


本篇评论 —— 揽流光,涤眉霜,清露烈酒一口话苍茫。


    声明:参照站内规则,不文明言论将会删除,谢谢合作。


      最新评论




ABOUT ME

Blogger:袅袅牧童 | Arkin

Ido:PHP攻城狮

WeChat:nnmutong

Email:nnmutong@icloud.com

标签云