云龙湖旅游景区网站建设招标,企业网站运营问题,郑州网站模板哪里有,广播电台网站建设方案给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。
你可以假设除了数字 0 之外#xff0c;这两个数字都不会以零开头。
进阶#xff1a;
如果输入链表不能修改该如何处理#xff1f;换…给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。
你可以假设除了数字 0 之外这两个数字都不会以零开头。
进阶
如果输入链表不能修改该如何处理换句话说你不能对列表中的节点进行翻转。
示例
输入(7 - 2 - 4 - 3) (5 - 6 - 4) 输出7 - 8 - 0 - 7
思路放入栈中再相加。
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val x; }* }*/
class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {StackInteger s1 new Stack();StackInteger s2 new Stack();while(l1 ! null) {s1.push(l1.val);l1 l1.next;}while(l2 ! null) {s2.push(l2.val);l2 l2.next;}ListNode res null;int c 0;while(!s1.isEmpty() || !s2.isEmpty() || c 0) {int sum (s1.isEmpty() ? 0 : s1.pop()) (s2.isEmpty() ? 0 : s2.pop()) c;ListNode n new ListNode(sum % 10);c sum / 10;n.next res;res n;}return res;}
}