Remove Nth Node From End of List Total Accepted: 63354 Total Submissions: 234837 My Submissions Question Solution
Given a linked list, remove the nth node from the end of list and return its head.
For example,
Given linked list: 1->2->3->4->5, and n = 2.
After removing the second node from the end, the linked list becomes 1->2->3->5.
Note:
Given n will always be valid.
Try to do this in one pass.
[分析] 快慢指针思路。两指针初始均指向head,快指针尽量先走 n 步:
1)若快指针超过了最后一个节点,即为null:
a)若此时已走过n步,说明共有 n 个节点,需要删除第一个节点;
b)若此时尚未走完n步,说明链表长度小于n,无需删除任何节点
2)若快指针走完n步且没有超过最后一个节点,说明链表长度大于n,两指针开始同步前进,
快指针走到最后一个节点时,慢指针的下一个节点即为倒数第 n 个节点。
这题虽然为简单题,可是我并不能很快地做到bug free。
public class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
if (n <= 0) return head;
ListNode slow = head, fast = head;
int i = 0;
while(i < n && fast != null) {
fast = fast.next;
i++;
}
if (fast == null) return i < n ? head : head.next;
while (fast.next != null) {
slow = slow.next;
fast = fast.next;
}
slow.next = slow.next.next;
return head;
}
}
分享到:
相关推荐
js js_leetcode题解之19-remove-nth-node-from-end-of-list.js
c语言入门 C语言_leetcode题解之19-remove-nth-node-from-end-of-list.c
c c语言_leetcode 0019_remove_nth_node_from_end_of_list.zip
java入门 java_leetcode题解之019_Remove_Nth_Node_From_End_of_List
19.Remove_Nth_Node_From_End_of_List删除链表的倒数第N个节点【LeetCode单题讲解系列】
扔鸡蛋 leetcode LeetCode-Note-Mary Mary's ...List(删除链表的倒数第N个节点) 153. Find Minimum in Rotated Sorted Array(寻找旋转排序数组中的最小值) 2020/12/09 300. Longest Increasing
- **2.2.7 Remove Nth Node From End of List** - 删除链表倒数第n个节点。 - 实现思路:使用快慢指针,快指针先走n步,当快指针到达尾部时,慢指针指向待删除节点的前一个节点。 - **2.2.8 Swap Nodes in Pairs...
- Remove Nth Node From End of List: 给定一个链表,删除链表中的第n个节点。 - Valid Parentheses: 验证给定的字符串中的括号是否有效。这通常可以通过栈结构来实现。 - Merge Two Sorted Lists: 合并两个有序链表...
Remove Nth Node From End of List LeetCode 42 Trapping Rain Water LeetCode 61 RotateList LeetCode 75 Sort Colors LeetCode 125 Valid Palindrome LeetCode 167 Two Sum II - Input array is sorted LeetCode ...
Remove Nth From End**:移除链表中的第 n 个节点。 - **206. Reverse Linked List**:反转整个链表。 - **21. Merge Two Sorted Lists**:合并两个已排序的链表,保持排序顺序。 - **142. Linked List Cycle II...
Remove Nth Node From End of List Swap Nodes in Pairs Spiral Matrix Path Sum II Copy List with Random Pointer Building H2O Fizz Buzz Multithreaded hard Merge k Sorted Lists Reverse Nodes in k-Group ...
19. Remove Nth Node From End of List 20. Valid Parentheses 21. Merge Two Sorted Lists 22. Generate Parentheses 23. Merge k Sorted Lists 24. Swap Nodes in Pairs 25. Reverse Nodes in k-Group 26. Remove ...
2sum leetcode ...Remove_Nth_Node_From_End_of_List.cpp - invert_Binary_Tree.cpp - 对称树.cpp - BST_Or_Not.cpp - level_order_traversal.cpp - exponentiation_by_squaring.cpp - Maximum_Depth_B
leetcode括号生成python leetcode 打算开始在leetcode上刷题了嗯。 希望不要因为各种各样的原因半途而废…… 2015.3.28 在这里贴一下写过的题解和思路。 长期更新。 #19 Remove Nth Node From End of List Given a ...
leetcode 316 leetcode 题解更新脚本 用于快速的更新题解、同步leetcode的做题情况。 题解见: 文件名 用途 add_to_blog_solution_table.py 添加题解地址or题解语言到表格,能同步leetcode新题情况 blog_solution_...
leetcode 2 Leetcode答案集 关于项目: 本项目包含本人LeetCode解题的答案,全部将由JavaScript语言进行解答。并会在每个题目的文件夹中添加相关的思路解析。 详情 # Title Solution Time Space Difficulty 1 Two ...
26 | [Remove Duplicates from Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array/)| [C++](./C++/remove-duplicates-from-sorted-array.cpp) [Python](./Python/remove-duplicates...
删除链表的倒数第N个结点-力扣(LeetCode)](https://leetcode.cn/problems/remove-nth-node-from-end-of-list/) - **描述**: 给定一个链表的头节点`head`,删除链表的倒数第`n`个节点并返回链表的头节点。 - **解题...
leetcode题库 Little Algorithm 从 2020 年初开始,我在公众号《面向大象编程》上发表面试算法、LeetCode 题解相关文章,至今收获不少好评。此仓库是公众号内容的补充,包括公众号文章涉及到的题目的参考代码,以及 ...
java二叉树算法源码 ...Remove Nth Node From End of List Medium 21 合并两个有序链表 Merge Two Sorted Lists Easy 141 判断链表是是否存在环 Linked List Cycle Easy 142 环形链表II Linked List Cycle I