ACM萌新入门指南之特判
当我们做题碰到算法正确并且通过了样例和自制的样例却依然报WA时,就因当考虑判断特殊情况了

特判主要包含0与空的特判,边界特判和特殊值的特判

传入为空时的特判

本题不少同学都发现自己在第三个测试样例出现了段错误,说明出现了数组越界或者是对0操作、对空指针操作以及爆栈的情况,本题为对空指针(不存在的内存)进行操作。
对于本题传入的第一个参数(链表的地址),如果传入为NULL,即传入空链表时,如果按照正常程序操作其Next指针,则会出现访问不存在的内存的情况,因此应当在函数最前面对传入的L进行为空的特判:

避免“0”的特判
在有了一定的刷题量的基础后,我们对RE(Runtime Error)的成因有了一个认识:数组越界。然而在实际做题过程中,当我们开始使用容器而非传统数组后,我们遍历数组往往是这样的
这使得我们并不那么容易出现数组越界的情况,那么当我们出现RE错误时,更多的就要考虑是否有除0的错误了
没找到合适的例题,感觉这个太基础了,大伙小学应该就学过0不能做除数吧
还有一种情况也需要考虑到,即出现类似“操作m次”这样的要求时,如果操作0次是直接跳过该样例、直接退出、还是按照特定规则输出
例如PAT甲级的这一道A+B

题目大意:
这题目不能说不难,只能说非常简单,简单到令人发指,于是我几分钟搓了一发答案


结果wa了一个点
由于只有一个点,考虑是不是被特殊构造卡掉,测试发现当两数之和为0是,这段代码不会输出
于是加入特判


一般来讲,当我们的代码可以通过绝大多数数据但是依旧wa时,就可以考虑特判。但是如果只能通过少数样例wa掉,就该考虑丢精度/数据超限/算法错误等问题了