删除倒数第n个节点

找到倒数第k个节点和倒数第k个的前一个节点

res = new Node();

pre = res;

cur = head;

fast = head;

先把快指针向后移动n次

while(n > 0){fast = fast.next;n--}

再把快指针和慢指针一起向后移动,直到快指针为空

while(fast != null){fast = fast.next;  pre = cur;  cur = cur.next}

此时fast为空,cur为倒数第n个节点,删除节点

pre.next = cur.next;

return res.next;

https://www.nowcoder.com/practice/f95dcdafbde44b22a6d741baf71653f6?tpId=295&tqId=727&ru=/exam/oj&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Foj

posted @ 2023-03-29 17:39  材料狗不许睡午觉  阅读(31)  评论(0)    收藏  举报