查找链表的倒数第n个节点

// 返回链表的倒数第 k 个节点
ListNode findFromEnd(ListNode head, int k) {
 ListNode p1 = head;
 // p1 先⾛ k 步
 for (int i = 0; i < k; i++) {
 p1 = p1.next;
 }
 ListNode p2 = head;
 // p1 和 p2 同时⾛ n - k 步
 while (p1 != null) {
 p2 = p2.next;
 p1 = p1.next;
 }
 // p2 现在指向第 n - k 个节点
 return p2;
}

 

posted @ 2022-03-18 20:45  ☞@_@  阅读(29)  评论(0编辑  收藏  举报