166. Nth to Last Node in List

Leave a comment

June 1, 2016 by oneOokay

NOTE:  fast pointer’s null boundary

 

ListNode nthToLast(ListNode head, int n) {

if(head == null)
return null;

int i = 0; //i = 0
ListNode fast = head;
ListNode slow = head;

while(fast != null && i < n) //null boundary && i < n
{
fast = fast.next;
i++;
}

if(i < n)
return null;

while(fast != null){ //null boundary
fast = fast.next;
slow = slow.next;
}

return slow; //here return slow NOT slow.next
}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: