力扣19 链表 删除倒数N结点

目录

问题:

1.链表的组成结构

2.如何改变倒数第N个结点

2.1 求链表长度

2.2 找到倒数第N个结点前一个结点

2.3 让倒数N前一个改变即可

3.源代码示范


问题:

1.链表的组成结构

单向链表  由value + next 组成 ,value包括此结点的各基础属性,next存储下一个结点地址

curr.next 代表curr结点指向的下一个结点,为2 ;

pre.next = curr.next  代表赋值  将curr下一个结点,作为pre的下一个结点 

/** 如curr值为1 */

curr.next /** 代表curr结点指向的下一个结点,为2 */
 
curr.next.next /** curr.next指向的下一个结点,为3 */

2.如何改变倒数第N个结点

2.1 求链表长度

    public int getSize(ListNode head){
        ListNode temp = head;
        int size = 0;
        while (temp != null) {
            size++;
            //一定要好好想想,结尾是否要迭代指针
            temp = temp.next;
        }
        return size;
    }

2.2 找到倒数第N个结点前一个结点

 int sz  = getSize(head);       
        for(int i=1;i<sz-n;i++){
            curr = curr.next;
        }

2.3 让倒数N前一个改变即可

        curr.next = curr.next.next;

3.源代码示范

class ListNode{
    int val;
    ListNode next;
    ListNode(int value,ListNode next_one)
    {
        val = value;
        next = next_one;
    }
}

public class Solution {

    public ListNode removeNthFromEnd(ListNode head,int n){
        // ListNode dummy = new ListNode(0, head);
    
        ListNode curr = head;
        int sz  = getSize(head);       
        for(int i=1;i<sz-n;i++){
            curr = curr.next;
        }
        curr.next = curr.next.next;
        //end必须在链表更新后,再获取头节点值
        ListNode end = head;
        return end;
    }
    public int getSize(ListNode head){
        ListNode temp = head;
        int size = 0;
        while (temp != null) {
            size++;
            //一定要好好想想,结尾是否要迭代指针
            temp = temp.next;
        }
        return size;
    }
    public void printNistNode(ListNode head){
        ListNode curr = head;
        while (curr != null) {
            System.err.println(curr.val);
            curr = curr.next;
        }
        
    }
}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-27 01:56:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 01:56:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 01:56:02       82 阅读
  4. Python语言-面向对象

    2024-03-27 01:56:02       91 阅读

热门阅读

  1. C++之函数的重载

    2024-03-27 01:56:02       49 阅读
  2. 跟我学C++中级篇——STL的中的删除

    2024-03-27 01:56:02       46 阅读
  3. Web使用基础

    2024-03-27 01:56:02       43 阅读
  4. 【Vue】实现的底层原理

    2024-03-27 01:56:02       42 阅读
  5. Qt 事件

    Qt 事件

    2024-03-27 01:56:02      35 阅读
  6. 代码随想录刷题随记6-哈希表2,双指针

    2024-03-27 01:56:02       47 阅读
  7. Vue 与 React 的区别

    2024-03-27 01:56:02       42 阅读
  8. 搭建Kafka集群

    2024-03-27 01:56:02       43 阅读
  9. 简单讲讲spring事务的传播机制

    2024-03-27 01:56:02       41 阅读
  10. 一个好用的文档部署工具-VitePress

    2024-03-27 01:56:02       39 阅读
  11. ChatGPT 3.5和ChatGPT 4.0之间有哪些区别?

    2024-03-27 01:56:02       160 阅读