头插法

两个链表生成相加链表

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

相关推荐

用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务