题解 | #11.链表相加(二)#

链表相加(二)

http://www.nowcoder.com/practice/c56f6c70fb3f4849bc56e33ff2a50b6b

栈、链表

将两个链表从头逐个放到stack中

从两个stack中分别取出值进行相加操作,注意如果产生进位则放到下一次中,因此引入jinwei这个变量

注意,两个stack均为空后,还要再次判断一下是否有进位

function addInList( head1 ,  head2 ) {
  let stack1 = new Array();
  let stack2 = new Array();
  
  while(head1 != null){
    stack1.push(head1);
    head1 = head1.next;
  }
  while(head2 != null){
    stack2.push(head2);
    head2 = head2.next;
  }
  let jinwei = 0;//之前的进位
  let pHead = new ListNode(-1);
  let pre = pHead;
  while(stack1.length!=0 || stack2.length!=0){
    let node1 = stack1.pop();
    let node2 = stack2.pop();
    
    let val1 = node1 ? node1.val : 0;
    let val2 = node2 ? node2.val : 0;
    
    let falseValue = val1 + val2 + jinwei;
    let trueValue = falseValue % 10;
    jinwei = (falseValue - trueValue) / 10;
    let node = new ListNode(trueValue);
    node.next = pre.next;
    pre.next = node;
  }
  if(jinwei == 1){
    let temp = new ListNode(1);
    temp.next = pHead.next;
    pHead.next = temp;
  }
  return pHead.next;
}
module.exports = {
    addInList : addInList
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 13:38
8月实习会变多吗现在还没找到实习该怎么办...回复的hr好少
码农索隆:3-4月就要开始找,基本上6月份就发offer,7月初已经开始暑期实习了。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-17 14:38
干个蛋,干不了一点!!!!我真服了,还没搞完,很急。 今天ddl,活没干完直接通宵,刺激。食堂很好吃,感觉离职的时候会胖10斤。mt喜欢能直接干活的,没空指导我,很难受。每个人都是笑嘻嘻的,但是从他们聊天中都能感受到各种试探,我有点慌了大家真的nb,都能准时完成工作下班,我羡慕啊!!!!!每天好累,想离职了💔
牛客26106072...:能去字节实习说明你的能力挺被认可的,实习中的这种累更有利于个人职场成长,试着当熬夜打游戏一样熬一熬,实习的意义就是看自己的差距和适应能力,总比等到工作时各种不适应辞职要好得多吧?
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务