int diListNode Lint nint km = 0i = 1倒数第 n个即返回的 i-n == 当前循环的 i此i就是删除 ifL == NULL ifk-1 == nreturn -1;删除头结点返回第二个结点即可 return k-1; int m = diL-nextnk++; 5
-
当链表中只有一个结点且需要删除时,没有考虑返回NULL的情况。在removeNthFromEnd函数中,需要加上判断链表只有一个结点且需要删除的情况。
-
在di函数中,m-n == k 的判断条件不正确,应该是m-n == n-1。因为n是倒数第n个结点,所以删除的是第m个结点,即m-n+1个结点,而当前循环的是第k个结点,所以m-n+1 == k-1,即m-n == k-2,而需要删除的是倒数第n个结点,所以k-2 == n-1。
-
在di函数中,返回值m的含义不清晰,应该改为返回当前结点的位置i。因为需要删除的是倒数第n个结点,所以需要找到倒数第n+1个结点,即第i-n个结点,而当前循环的是第i个结点,所以i-n就是需要删除的结点。
-
在di函数中,k的初始值应该为1,而不是0。因为当前循环的是第k个结点,而不是第k-1个结点。
原文地址: https://www.cveoy.top/t/topic/ckU4 著作权归作者所有。请勿转载和采集!