题目信息

image.png

问题解答

双指针

指针间距为n+1,避免n和链表一样长的情况,加一个dummyHead(这道ts写起太烦了,姑且js写一下)
https://leetcode-cn.com/submissions/detail/117553204/
image.png

  1. var removeNthFromEnd = function(head, n) {
  2. const dummyHead = new ListNode()
  3. dummyHead.next = head
  4. let cur = dummyHead, fast = dummyHead
  5. while(n+1) {
  6. fast = fast.next
  7. n--
  8. }
  9. while(fast) {
  10. fast = fast.next
  11. cur = cur.next
  12. }
  13. // 删除链表元素
  14. cur.next = cur.next.next
  15. return dummyHead.next
  16. };