sundeepblue
1/30/2014 - 7:19 PM

get last kth node in list

get last kth node in list

// key idea: first, go k-1 step.

ListNode* get_last_kth_node(ListNode *head, int k) {
	if(!head) return NULL;
	if(k == 0) return NULL;
	ListNode *p = head;
	// run k-1 steps
  for(int i=0; i<k-1; i++) {
  	if(p->next == NULL) return NULL;
  	p = p->next;
  }
  ListNode *slow = head;
  while(p->next) {
  	slow = slow->next;
  	p = p->next;
  }
  return slow;
}