euisblue
19. Remove Nth Node From End of List

Ruby

1# Definition for singly-linked list. 2# class ListNode 3# attr_accessor :val, :next 4# def initialize(val = 0, _next = nil) 5# @val = val 6# @next = _next 7# end 8# end 9# @param {ListNode} head 10# @param {Integer} n 11# @return {ListNode} 12def remove_nth_from_end(head, n) 13 cnt = 0 14 curr = head 15 16 while curr 17 cnt += 1 18 curr = curr.next 19 end 20 21 if cnt == n 22 head = head.next 23 else 24 cnt -= n 25 26 curr = head 27 (cnt-1).times {curr = curr.next} 28 curr.next = curr.next.next 29 end 30 31 head 32end