两数相加:
C解题参考:
解题思路:
(一)首先观察实例1,会发现本题的目的就是链表第一位加第一位,若产生进位,则累加到下一位,以此类推,那么脑子里就应该得出每一位的结果=a+b+进位;
(二)下一步顺理成章想到得出这个每一步结果后应该有两个动作:①将结果的个位放到最终要返回的链表里;②得出的这位结果可能产生进位,应放到下一位里;
(三)到此整个思路就是完整的,那么还有一些细节需要注意(这往往需要在特殊用例中发现,例如实例3)当链表不一样长时,应该在短的链表后面补零,再进行相加(见代码注释);
(四)最后容易忽略的一点是,当链表所有位计算完成时,可能最后两数相加产生了进位,则该进位也应放到结果链表里。
C++解题参考: