题解 | #链表中倒数最后k个结点#
链表中倒数最后k个结点
https://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9
using System; using System.Collections.Generic; /* public class ListNode { public int val; public ListNode next; public ListNode (int x) { val = x; } } */ class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pHead ListNode类 * @param k int整型 * @return ListNode类 */ public ListNode FindKthToTail (ListNode pHead, int k) { // write code here ListNode listNode = new ListNode(0); int nLnLen = 0; while (pHead != null) { ListNode lnTmp = pHead.next; pHead.next = listNode.next; listNode.next = pHead; pHead = lnTmp; nLnLen++; } ListNode listNodeTmp = listNode.next; listNode.next = null;//中断复用 int nIndex = 0; for (; nIndex < k && listNodeTmp != null; nIndex++) { ListNode lnTmp = listNodeTmp.next; listNodeTmp.next = listNode.next; listNode.next = listNodeTmp; listNodeTmp = lnTmp; } return k > nLnLen ? null : listNode.next; } }