力扣热题100_2
作者:互联网
两数相加,数以链表的形式存储,每隔节点存一位,还蛮有意思的,不过真的很容易走进误区哈哈
刚开始的想法满单纯的,把两个数提出来然后一位一位的写进去不就完了,一测试才发现,原来最大支持一百位啊,10的一百次方可是没法直接算了,我也明白了为什么要已这种形式存储了,既然这种方式不行,只能试着让每一位相加求结果了。
首先要先分好不同的情况,第一种是两个数都只有一位,没有后继节点的情况,第二种其中一个链表要更长,第三种两个一样长。如果其中一个链表更长的话,相加到短链表长度的位置,直接把next节点设置为更长链表的后续结点就好了,其实仔细想想也不难。新建一个表也是很麻烦的,不如直接用较长的那个表这样不仅容易还节省空间。
不过写下来后发现这样分情况写下来没有那么容易,整整花了70多行,判定条件写的也比较复杂。接下来需要深入研究一下大佬的代码。
大佬们果然是不一样啊 利用?:语句来判定结点是否为空,再加一个简单的判定条件,根据next是否为空来判断用不用进行l1 = l1.next;, 我一直盲目的前往下一个结点导致我需要在嵌套很多很多if以免将节点赋上null值。
总而言之今天收获还是蛮多的:判断条件赋值的话可以直接使用?:;在进行 l = l.next这样赋值的时候一定要加判断条件,避免出现值不存在之类的错误。
问题:某一个点我在赋过值后想把这一个结点变为null好像是不行的?值是空的结点赋不上值?总而言之一直在这个问题上纠结。下次自己再实验实验。
标签:链表,结点,相加,next,力扣,节点,100,一位,热题 来源: https://www.cnblogs.com/gzwy/p/16287036.html