zoukankan      html  css  js  c++  java
  • LeetCode——两数相加

    题目地址:https://leetcode-cn.com/problems/add-two-numbers/

    解题思路:简单链表操作,注意判断链表的长度以及最高位进位的情况。

    值得注意的几组样例

    >>>[5]
    >>>[5]
    
    >>>[1,8]
    >>>[0]
    
    >>>[9,8]
    >>>[1]
    
    >>>[1]
    >>>[9,9]
    
    >>>[5]
    >>>[5]

    遇到的问题:分配内存不能用new进行分配内存。原因是使用的是C编译器,而不是C++。

    具体代码:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     struct ListNode *next;
     * };
     */
    struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
        struct ListNode *l, *p, *p1, *p2;
        p1 = l1;
        p2 = l2;
        l = (struct ListNode*)malloc(sizeof(struct ListNode));
        p = l;
        int flag = 0;//进位标志符
        while (p1 && p2 ) {
            p->next = (struct ListNode*)malloc(sizeof(struct ListNode));
            p = p->next;
            int tmp = p1->val + p2->val + flag;
            if (tmp >= 10) {
                p->val = tmp % 10;
                flag = 1;
            }
            else {
                p->val = tmp;
                flag = 0;
            }
            p1 = p1->next;
            p2 = p2->next;
        }
        p->next = NULL;
        if (p1)
            p->next=p1;
        if (p2)
            p->next = p2;
        while(p->next){
            p=p->next;
            if(flag){
                p->val=p->val+1;
                if(p->val>=10){
                    p->val %=10;
                    flag = 1;
                }
                else
                    flag=0;
            }
        }
        //最高位
        if (flag) {
            p->next = (struct ListNode*)malloc(sizeof(struct ListNode));
            p = p->next;
            p->val = 1;
            p->next = NULL;
        }
        return l->next;
    }
  • 相关阅读:
    安卓反编译
    Icesugar Gourd
    php文件写入
    java 序列化与反序列化
    Toj Dominoes Game
    adb&frida
    Markdown 测试用例
    iview InputNumber类输入框表单验证失效
    01背包问题(回溯算法实现)
    阅读作业二读Lost in CatB有感 by 李栋
  • 原文地址:https://www.cnblogs.com/cc-xiao5/p/13255862.html
Copyright © 2011-2022 走看看