diff --git a/src/main/java/leetcode/editor/cn/RemoveNthNodeFromEndOfList.java b/src/main/java/leetcode/editor/cn/RemoveNthNodeFromEndOfList.java new file mode 100644 index 0000000..b6ecc77 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/RemoveNthNodeFromEndOfList.java @@ -0,0 +1,84 @@ +//给你一个链表,删除链表的倒数第 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] +// +// +// +// +// 提示: +// +// +// 链表中结点的数目为 sz +// 1 <= sz <= 30 +// 0 <= Node.val <= 100 +// 1 <= n <= sz +// +// Related Topics 链表 双指针 +// 👍 1398 👎 0 + +package leetcode.editor.cn; + +import com.code.leet.entiy.ListNode; + +import java.util.ArrayList; +import java.util.List; + +//19:删除链表的倒数第 N 个结点 +public class RemoveNthNodeFromEndOfList{ + public static void main(String[] args) { + //测试代码 + Solution solution = new RemoveNthNodeFromEndOfList().new Solution(); + } + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) +/** + * 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) { + List list = new ArrayList<>(); + ListNode temp = head; + while (temp != null) { + list.add(temp); + temp = temp.next; + } + if (n == list.size() && head != null) { + head = head.next; + } else if (list.size() != 1) { + list.get(list.size() - n - 1).next = list.get(list.size() - n).next; + } + return head; + } +} +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/RemoveNthNodeFromEndOfList.md b/src/main/java/leetcode/editor/cn/RemoveNthNodeFromEndOfList.md new file mode 100644 index 0000000..e7cccec --- /dev/null +++ b/src/main/java/leetcode/editor/cn/RemoveNthNodeFromEndOfList.md @@ -0,0 +1,38 @@ +

给你一个链表,删除链表的倒数第 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]
+
+ +

 

+ +

提示:

+ + +
Related Topics
  • 链表
  • 双指针
  • \n
  • 👍 1398
  • 👎 0
  • \ No newline at end of file