头插法

两个链表生成相加链表

http://www.nowcoder.com/questionTerminal/c56f6c70fb3f4849bc56e33ff2a50b6b

/**
 * struct ListNode {
 *    int val;
 *    struct ListNode *next;
 * };
 */

class Solution {
public:
    /**
     * 
     * @param head1 ListNode类 
     * @param head2 ListNode类 
     * @return ListNode类
     */
    ListNode* addInList(ListNode* head1, ListNode* head2) {
        // write code here
        ListNode* A = head1;
        ListNode* B = head2;

        stack<int> tmpA,tmpB;
        while(A){
            tmpA.push(A->val);
            A = A->next;
        }
        while(B){
            tmpB.push(B->val);
            B = B->next;
        }

        int per = 0;
        ListNode* L = new ListNode(0);
        while(!tmpA.empty() || !tmpB.empty() || per != 0){
            int x = 0, y = 0;
            if(!tmpA.empty()){
                x = tmpA.top();
                tmpA.pop();
            }
            if(!tmpB.empty()){
                y = tmpB.top();
                tmpB.pop();
            }
            int sum = x + y + per;
            per = sum / 10;
            ListNode* node = new ListNode(sum%10);
            node->next = L->next;
            L->next = node;
        }
        return L->next;
    }
};
全部评论
一开始没有理解 per 变量的含义,原来是进位。
点赞 回复 分享
发布于 2020-10-14 00:06

相关推荐

刘湘_passion:太强了牛肉哥有被激励到
点赞 评论 收藏
分享
劝退式:感觉有人回才是不正常的
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务