原创

[百战LeetCode][11.删除链表倒数第K个节点]


==========================努力奋斗财源广进==========================

一、算法题目

给定一个链表,删除链表的倒数第 n 个节点并返回链表的头指针

二、题解

1、我的题解

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param head ListNode类 
     * @param n int整型 
     * @return ListNode类
     */
    public ListNode removeNthFromEnd (ListNode head, int n) {
        // write code here
        //属于比较简单的题目,类似于上一题,删除对应的节点。
        //使用快慢指针。
        //亚节点使用
        ListNode dummy = new ListNode(-1);
        dummy.next = head;
        ListNode fast = dummy;
        ListNode slow = dummy;
        for(int i = 0; i < n + 1; i++){
            fast = fast.next;   
        }
        while(fast != null){
            fast = fast.next;
            slow = slow.next;
        }
        //删除slow节点
        slow.next = slow.next.next;
        return dummy.next;        
    }
}

2、优秀题解

//待定

三、解法心得

此题比较简单,并且自己做出来,还得到一个比较高的分。,主要是添加了一个哑节点。然后使用双指针,快指针比K多走一步,找到要删除节点的前一个节点。

四、自我监督

评论区记录复习记录

  • 作者:北斗七点半联系作者
  • 发表时间:2022-07-15 21:22
  • 版权声明:禁止转载
  • 非公众号转发
  • 评论