• 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;
    }
  • 相关阅读:
    node 读取文件
    jQuery全局事件处理函数
    可以发送不同源请求的方式
    ajax 高度封装的函数
    jQuery中AJAX的回调
    jQuery中对AJAX的封装
    ajax 基本的封装
    AJAX 返回数据问题
    ajax 关于响应类型
    动态渲染数据到表格中
  • 原文地址:https://www.cnblogs.com/cc-xiao5/p/13255862.html
Copyright © 2020-2023  润新知