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;
};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏计算机视觉与深度学习基础

Leetcode 234. Palindrome Linked List

Given a singly linked list, determine if it is a palindrome. Follow up: Could...

1887
来自专栏Java成神之路

求助-钉钉开发异步消息失败

1484
来自专栏Jack-Cui

234. Palindrome Linked List(Linked List-Easy)

Given a singly linked list, determine if it is a palindrome. Follow up: Could yo...

18610
来自专栏深度学习与计算机视觉

数据结构-单链表的读取,插入与删除

链表定义: struct ListNode { int value; ListNode *next; }; 单链表读取 在顺序存储结构中,比如数组中,想...

1867
来自专栏Hongten

J2SE 内部类 [Inner]

/**  * 内部类:  *  内部类与其所在的外层来之间存在着逻辑上的依赖关系--内部类的对象布恩给你单独存在,他必须依赖一个其外层类的对象  *  *  ...

782
来自专栏女程序员的日常

LeetCode之Add Two Numbers

  先分位求总和得到 totalsum,然后再将totalsum按位拆分转成链表;

451
来自专栏吴伟祥

java获取ip和地区 原

723
来自专栏小二的折腾日记

LeetCode-23-Merge-k-Sorted-Lists

这个题乍一看只是对链表的一个排序,因为是很多个链表,所以很简单的想法就是将整个数组里面的两个链表分别进行排序。两个两个互相排序之后就能排好。这里用的是递归。当v...

602
来自专栏desperate633

LeetCode 160. Intersection of Two Linked Lists题目分析

请写一个程序,找到两个单链表最开始的交叉节点。 ** 注意事项 ** 如果两个链表没有交叉,返回null。 在返回结果后,两个链表仍须保持原有的结构。 ...

632
来自专栏程序生活

Leetcode-Easy 234. Palindrome Linked List

234. Palindrome Linked List 描述: 判断一个单链表是否左右对称 ? 思路: 直接判断关于中心对称位置的节点值是...

3166

扫码关注云+社区