LeetCode:删除链表的倒数第N个节点(c#)
程序员文章站
2024-03-15 18:10:42
...
题目内容
代码实现
/**
* Definition for singly-linked list.
* public class ListNode {
* public int val;
* public ListNode next;
* public ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode RemoveNthFromEnd(ListNode head, int n) {
//先跑N个位置的节点
var fastNode = head;
//先跑N位置
for (int i = 0; i < n; i++)
fastNode = fastNode.next;
//如果快节点为null,说明删除的就是head节点
if (fastNode == null)
return head.next;
//让快节点再跑一个节点
fastNode = fastNode.next;
//慢N+1位置节点,用于删除第N位置节点
var slowNode = head;
//循环往下追溯到尾部
while (fastNode != null)
{
fastNode = fastNode.next;
slowNode = slowNode.next;
}
//删除N号节点
slowNode.next = slowNode.next.next;
//返回头节点
return head;
}
}
下一篇: 初夏小谈: LC:快乐数问题
推荐阅读
-
LeetCode每日一题 19. 删除链表的倒数第N个节点
-
【leetcode】19-删除链表的倒数第N个节点【C++】
-
Leetcode19 删除链表的倒数第N个节点 C++,Java,Python
-
LeetCode每日一题---19.删除链表的倒数第n个节点
-
LeetCode:删除链表的倒数第N个节点(c#)
-
Leetcode19.删除链表的倒数第N个节点(C语言)
-
LeetCode——删除链表的倒数第N个节点
-
Leetcode(链表)删除链表的倒数第N个节点(C语言)
-
leetcode 237. 删除链表中的节点 JavaScript解决
-
237.图解删除链表中的节点(leetcode)