leeetcode 19 Remove Nth Node From End of List
思路是:先取一个指针,让这个指针到达第n个节点,然后在取一个节点指向头节点,两个指针同时向后移动,直到第一个指针指向尾节点,此时第二个指针指向的节点就是要删 除的节点的前一个节点。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { if(head == null || head.next == null) return null; ListNode p = head, q = head; while(n != 0) { p = p.next; n--; } if(p == null) return head.next; while(p.next != null) { q = q.next; p = p.next; } q.next = q.next.next; return head; } }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步