• leetCode刷题(使用链表做加法)


    Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
    Output: 7 -> 0 -> 8
    Explanation: 342 + 465 = 807.
    关键是获取最后一个node节点
    /**
     * Definition for singly-linked list.
     * function ListNode(val) {
     *     this.val = val;
     *     this.next = null;
     * }
     */
    /**
     * @param {ListNode} l1
     * @param {ListNode} l2
     * @return {ListNode}
     */
    function listNode(val) {
        this.val = val;
        this.next = null;
    }
    var addTwoNumbers = function(l1, l2) {
        var addp=l1,addn=l2,addpArr=[],addnArr=[],result;
        while(addp){
            addpArr.push(addp.val);
            addp=addp.next;
        }
        while(addn){
            addnArr.push(addn.val);
            addn=addn.next;
        }
    	debugger
        var resultArr=[];
    	for(var j=0;j<Math.max(addpArr.length,addnArr.length);j++){
    		addpArr[j]=addpArr[j]||0;
            addnArr[j]=addnArr[j]||0;
    	}
        for(var i=0;i<Math.max(addpArr.length,addnArr.length);i++){
           
            if(addpArr[i]+addnArr[i]>=10&&i==Math.max(addpArr.length,addnArr.length)-1){
                addpArr[i+1]=0;
                addnArr[i+1]=0;
            }
            if(addpArr[i]+addnArr[i]>=10){
                addpArr[i+1]+=1;
    			resultArr.push(addpArr[i]+addnArr[i]-10);
            }else{
    			resultArr.push(addpArr[i]+addnArr[i]);
    		}
        }
    //  我认为应该返回result才是对的,但是事实上返回resultArr才是对的    
    //     var result=new listNode("");
    // 	result.val=resultArr[0];
    // 	result.next=lastNode;
    // 	var lastNode;
    // 	for(var i = 1;i<resultArr.length;i++){
    // 		lastNode=getLastNode(result);
    // 		lastNode.next={
    // 			val:resultArr[i],
    // 			next:null
    // 		};
    		
    // 	}
    // 	function getLastNode(list){
    // 		while(list.next){
    // 			list=list.next;
    // 		}
    // 		return list;
    // 	}
        return resultArr;
    };
    

      

    学而不思则罔,思而不结则殆,结而不看,一事无成
  • 相关阅读:
    [liu yanling]常用的测试工具
    [liu yanling]软件测试的过程
    [liu yanling]测试方法
    [Buffalo] 一些SQL函数
    [Stephen]C#中调用C++动态链接库
    [Jacky] 解决Ext.Net GridPanel 选择的行数据刷新后不能获取最新值
    [Tommas] dateadd() 函数用法
    [Tommas] UNION 和 UNION ALL 的区别
    文件I/O编程
    分房问题
  • 原文地址:https://www.cnblogs.com/windseek/p/8624446.html
Copyright © 2020-2023  润新知