思想
- 定义两个指针a和b,
- 指针b指向顺数第N个节点的位置
- 然后指针a指向顺序第1个节点的位置
- 同时把指针b和指针a向后平移
- 当指针b指向最后一个节点时,此时的指针a指向的就是倒数第n个节点。
java代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
public static Node findNFromLast(Node head, int n) { Node nthFromFirst = head; for (int i = 0; i < n - 1; i++) { nthFromFirst = nthFromFirst.next; } Node first = head; while (nthFromFirst.next != null) { nthFromFirst = nthFromFirst.next; first = first.next; } return first; }
|