LeetCode19.删除链表的倒数第N个节点(Java实现)

链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/

思路:

重点是找到要删除元素的前驱

LeetCode19.删除链表的倒数第N个节点(Java实现)_第1张图片

1.设置left和right指针,均从head开始

2.right向后移动N位

3.如果right为空,说明删除的是第一位元素(0_0)自己画一画吧

4.否则,right和left同时后移,直到right下一跳为空

5.此时left为要删除的元素的前驱

6.删,就不说了吧,看代码

class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        //0.判空
        if(head==null||head.next==null){
            return null;
        }
        //1.
        ListNode right=head;
        ListNode left=head;
        //2.
        for(int i=0;i

 

你可能感兴趣的:(LeetCode编程题)