题目
删掉链表倒数第n 个节点
思路
设置两个指针, cur1, cur2. 让cur2 先走n步, 然后cur1, cur2再同时往下走, 知道cur2达到链表末尾
总结
- 考虑边界情况, 当删除的是头结点时, cur2应该会越界, 通过判断cur2的位置返回head->next
- 第一次提交时判断条件都设为了if(cur2) or if(!cur), 忘了c++中NULL和false是不一样的
- cur1->next = cur1->next->next
BTW
大二上数据结构的时候老师就讲过这么一道题, 说是研究生入学考试的的一道题, 而能够完美做出来的人却很少. 这道题印象很深, 并且当初老师都不确定cur1->next = cur1->next->next 能否这么用.
大二时, 真是什么都不懂呢, 毕竟18岁