LeetCode题目-24

首页 编程分享 LEET_CODE 正文

leetCode 转载 编程分享 2022-11-05 06:53:01

简介 LeetCode题目-24


✏Leetcode之PHP版题目解析(24. Swap Nodes in Pairs)


✏描述

给定一个链表,两两交换两个结点的位置,然后返回交换后的链表,注意是交换结点本身,而不是修改其值


✏题目实例


✏题目分析

递归非递归都可以实现,就是需要去修改指针的指向,感觉做这种题目自己去画下图模拟下,不然可能在改变 next 的时候容易把自己绕晕。


✏代码实现(递归)

 

   /**
     * @param ListNode $head
     * @return ListNode
     */
    function swapPairs($head) {
        if($head ==null || $head->next==null){
            return $head;
        }
        $temp=$head->next;
        $head->next=$this->swapPairs($temp->next);
        $temp->next=$head;    
        return $temp;
    }

✏代码实现(非递归)

    /**
      * @param ListNode $head
      * @return ListNode
      */
     function swapPairs($head) {     
         $pre=new ListNode(-1);
         $pre->next=$head;
         $tmp=$pre;
         while($tmp->next !=null && $tmp->next->next !=null){
             $start=$tmp->next;
             $end=$tmp->next->next;
             $tmp->next=$end;
             $start->next=$end->next;
             $end->next=$start;
             $tmp=$start;
         }
         return $pre->next;
     }

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


Tags:


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


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


      最新评论




ABOUT ME

Blogger:袅袅牧童 | Arkin

Ido:PHP攻城狮

WeChat:nnmutong

Email:nnmutong@icloud.com

标签云