19. 删除链表的倒数第 N 个结点
Posted 五月的海湾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19. 删除链表的倒数第 N 个结点相关的知识,希望对你有一定的参考价值。
链表有头结点
package leetcode; public class demo_19 { //设置一个全局变量,记录倒数第几个节点需要被删除 int index=1; public ListNode removeNthFromEnd(ListNode head, int n) { if(head.next!=null) { removeNthFromEnd(head.next,n); if(index==n) { if(index==1) { head.next=null; } else { head.next=head.next.next; } } index=index+1; } return head; } public static void main(String[] args) { // TODO Auto-generated method stub int nums[]= {1,2,3,4,5}; ListNode l=new ListNode(); l.creatnode(l, nums); demo_19 d19=new demo_19(); d19.removeNthFromEnd(l, 5); l.printNode(l); } }
链表无头结点
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { int index=0; public ListNode removeNthFromEnd(ListNode head, int n) { if(head == null){ return null; } head.next = removeNthFromEnd(head.next,n); index=index+1; if (index == n){ return head.next; } return head; } }
以上是关于19. 删除链表的倒数第 N 个结点的主要内容,如果未能解决你的问题,请参考以下文章
算法leetcode|19. 删除链表的倒数第 N 个结点(rust重拳出击)