1. 当链表中只有一个结点且需要删除时,没有考虑返回NULL的情况。在removeNthFromEnd函数中,需要加上判断链表只有一个结点且需要删除的情况。

  2. 在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。

  3. 在di函数中,返回值m的含义不清晰,应该改为返回当前结点的位置i。因为需要删除的是倒数第n个结点,所以需要找到倒数第n+1个结点,即第i-n个结点,而当前循环的是第i个结点,所以i-n就是需要删除的结点。

  4. 在di函数中,k的初始值应该为1,而不是0。因为当前循环的是第k个结点,而不是第k-1个结点。

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

原文地址: https://www.cveoy.top/t/topic/ckU4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录