LeetCode 2 两数相加
LeetCode 67 二进制求和
上面两题有一个共性,就是需要将两个表(两数相加是链表,二进制求和是顺序表)中的内容操作一番之后形成一个新表。这类问题有一个比较难受的问题,就是一旦两表长度不一,则需要单独对某表和结果表进行操作。
最容易想到的思路应该是在两表中较短的表操作结束后,再在循环下另外写一个处理长表的循环。但是因为上下文不连贯,会导致程序十分冗长,可读性也较差。
最好的解决办法则是,只写一个循环,不管短表有没有操作结束,将它和长表一起放进来。如果短表操作结束了,则置之不理即可。
对于链表来说,可以通过判断其对应引用是否为null值来实现;对于顺序表来说,可以通过判断短表长度是否已超限来实现;详见文章开头的两个链接里的内容。