用ps做网站方法,做网站 模板,会员管理网站ASP建设,免费模板下载网站一、原题
给你一个链表#xff0c;删除链表的倒数第 n 个结点#xff0c;并且返回链表的头结点。
示例 1#xff1a; 输入#xff1a;head [1,2,3,4,5], n 2
输出#xff1a;[1,2,3,5]示例 2#xff1a;
输入#xff1a;head [1], n 1
输出#xff1a;[]示例 3删除链表的倒数第 n 个结点并且返回链表的头结点。
示例 1 输入head [1,2,3,4,5], n 2
输出[1,2,3,5]示例 2
输入head [1], n 1
输出[]示例 3
输入head [1,2], n 1
输出[1]
二、心得 这一题是数据结构中的链表我学的时候是用的 C/C 语言这里尝试了一下用 Java 语言来编整体的结构是互通的只是一些表达方式上有些出入罢了~o(*▽*)ブ 直接看代码
/*** 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 {public ListNode removeNthFromEnd(ListNode head, int n) {// 定义一个节点next 指向链表的头节点ListNode dummy new ListNode(0, head);int length getLength(head);ListNode cur dummy;//for (int i 1; i length - n 1; i) {cur cur.next;}// 删除第 n 个节点本质为跳过倒数第 n 个节点将倒数第 n - 1 个节点连接到倒数第 n 1 个节点的 next 上cur.next cur.next.next; // 翻译一下就是 倒数第 n 1 个节点的 next 等于 (倒数第 n 个节点的 next)[即倒数第 n - 1 个节点]ListNode ans dummy.next;return ans;}// 将 head 依次存入链表获取链表的长度public int getLength(ListNode head) {int length 0;while (head ! null) {length ;head head.next;}return length;}
} 先简单解释一下链表的基本结构节点。节点包括值 value指向下一节点的指针 next 。至于要不要指向上一节点的指针 front 根据需求设置这里不考虑。 这里再解释一下 cur.next cur.next.next; 继续学习ing~