本文主要是介绍LeetCode19:删除链表的倒数第 N 个结点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
- 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点
解答
- 创建ListNode
public static class ListNode {int val;ListNode next;ListNode() {}ListNode(int val) {this.val = val;}ListNode(int val, ListNode next) {this.val = val;this.next = next;}}
- 删除链表倒数第N个结点
private static ListNode removeNthFromEnd(ListNode node, int k) {if (node == null || k == 0) return null;// 获取链表长度int length = getNodeLength(node);System.out.println("length=== "+length);ListNode pre = new ListNode(0,node);ListNode cur=pre;for (int i = 1; i < length - k+1; i++) {cur = cur.next;}// 修改指针cur.next = cur.next.next;return pre.next;}
- 获取链表长度
private static int getNodeLength(ListNode node) {int length = 0;while (node != null) {length++;node = node.next;}return length;}
这篇关于LeetCode19:删除链表的倒数第 N 个结点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!