@lilixu I agree with lucidsushi's opinion. According to the level of difficulty of this question, a medium level, one of test points should be how to manipulate singly linked lists to achieve the goal of summation of two lists; the other one point to check is how to use dfs idea to design your algorithm for this question. Your algorithm design is pretty easy, because all built-in Python functions you use in your code hide the test points. If you are preparing for technical interview, you should try not to use built-in Python functions in your solution. For easy level questions, you could use them.
Nice solution.A good understand of the how add's carry that causes chain carry. But
jade86's answer, add the corresponding digit, and put the least significant to the first,
the most to the last, then deal with carry, then reverse the list is better to understand