zoukankan      html  css  js  c++  java
  • leetcode2 add two numbers

    一开始本想用函数把两个链表代表的数字都加起来,然后再取每一位数字合成链表,结果发现因为数字位数太多类似大整数,无法直接求出和,所以必须每一位都相加然后组成链表。学到了处理进位的方法,十分优雅,每次很自然的/10,大于10的话sum值自动变为1,如果最后还是1的话就再开一个结点来扩展一位

    /**
    * Definition for singly-linked list.
    * struct ListNode {
    *     int val;
    *     ListNode *next;
    *     ListNode(int x) : val(x), next(NULL) {}
    * };
    */
    class Solution {
    public:
    	ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
    		ListNode* s;
    		s = NULL;
    		ListNode* curs;
    		int sum = 0;
    		while (l1 != NULL || l2 != NULL)
    		{
    			if (l1 != NULL)
    			{
    				sum += l1->val;
    				l1 = l1->next;
    			}
    			if (l2 != NULL)
    			{
    				sum += l2->val;
    				l2 = l2->next;
    			}
    			if (s == NULL)
    			{
    				s = new ListNode(sum % 10);
    				curs = s;
    			}
    			else
    			{
    				curs->next = new ListNode(sum % 10);
    				curs = curs->next;
    			}
    			sum /= 10;
    		}
    		if (sum == 1)
    		{
    			curs->next = new ListNode(1);
    		}
    		return s;
    	}
    };
    

      

  • 相关阅读:
    jQuery DOM
    jQuery DOM基础
    h1标签
    DOM节点操作
    css选择器
    机器指令程序编写方法
    处理器和指令
    《支撑处理器的技术——永无止境地追求速度的世界》图书信息
    浮点数精度的转换
    《细说PHP(第2版)》图书信息
  • 原文地址:https://www.cnblogs.com/legendcong/p/9692430.html
Copyright © 2011-2022 走看看