LeetCodehot100-2 两数相加
class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { if (l1 nullptr) return l2; if (l2 nullptr) return l1; ListNode* head l1; // 保存头节点 ListNode* prev nullptr; // 记录上一个节点用于连接 int carry 0; // 同时遍历两个链表 while (l1 ! nullptr l2 ! nullptr) { int sum l1-val l2-val carry; l1-val sum % 10; carry sum / 10; prev l1; // 记录当前节点 l1 l1-next; l2 l2-next; } // 处理 l1 剩余节点 if (l1 ! nullptr) { while (l1 ! nullptr carry ! 0) { int sum l1-val carry; l1-val sum % 10; carry sum / 10; prev l1; l1 l1-next; } } // 处理 l2 剩余节点连接到原链表末尾 else if (l2 ! nullptr) { prev-next l2; // 连接剩余节点 while (l2 ! nullptr carry ! 0) { int sum l2-val carry; l2-val sum % 10; carry sum / 10; prev l2; l2 l2-next; } } // 处理最终进位 if (carry ! 0) { prev-next new ListNode(carry); } return head; } };
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2456377.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!