Skip to content

Latest commit

 

History

History
67 lines (54 loc) · 2.07 KB

19.md

File metadata and controls

67 lines (54 loc) · 2.07 KB

✏️Leetcode之PHP版题目解析(19. Remove Nth Node From End of List)

2019-06-27 吴亲库里 库里的深夜食堂


✏️描述

给定一个链表和一个随机数(随机数在可操作范围内),从链表的后面开始,移除倒数第n个节点,返回新的链表。


✏️题目实例

****

✏️题目分析

删除倒数第n个节点,也就是删除链表第Length-n+1个节点,所以第一步先求出链表的长度,第二步就是开始正式找删除节点了,通过指针的移动,先确认Lenght-n的位置,这个位置的下一个位置就是待删除的节点,我们只需要把这个位置的next指针指向他的->next->next即可。


✏️解法一

      /**
       * 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 $n
           * @return ListNode
           */
         
          function removeNthFromEnd($head, $n) {
            $temp->next=$head;
            $node=$head;
              $count=0;
              while($node !=null){
                  $count++;
                  $node=$node->next;
              }
              $count -=$n;
              $node=$temp;
              
              while($count>0){
                  $count--;
                  $node=$node->next;
              }
              $node->next=$node->next->next;
              return $temp->next;
          }
      }

联系