Find the nth to last element of a singly linked list

来源:互联网 发布:搜一次CMS 编辑:程序博客网 时间:2024/06/01 19:03

Question:

Implement an algorithm to find the nth to last (倒数第n个) element of a singly linked list.

Analyze:

we can simply use two pointers, and fix one position of the pointer and set it to the head of the list, and then, move another pointer to the place where the distance between these two pointers is n. Then, we move both pointers at the same time until one of the pointer reaches the end of the list.

Code:

public static Node nthtoLastNode(Node head, int n) {Node node = head;int count = n - 1; //be aware!//move the pointer to the place where//the distances between these two pointers is nwhile (count >= 1 && node.next != null) {count--;node = node.next;}//the length of the list is less than nif (count != 0) return null;// move the two pointers together while (node.next != null) {head = head.next;node = node.next;}return head;}
http://blog.csdn.net/beiyetengqing


原创粉丝点击