首页 > 其他 > 详细

leetcode 24. Swap Nodes in Pairs

时间:2019-12-15 09:51:06      阅读:91      评论:0      收藏:0      [点我收藏+]

对链表的相邻节点两两交换

var swapPairs = function(head) {
    var dummy = new ListNode;
    dummy.next = head;
    var prev = dummy
    while(head && head.next){
       var arr = swap(prev, head, head.next, head.next.next)
       prev = arr[0]
       head = arr[1]
    }
    return dummy.next
};

function swap(a, b, c, d){  
    a.next = c
    c.next = b;
    b.next = d;
   
    return [b, d]
    //a    c  b  d
    //dummy
}

数组方法构建

var swapPairs = function(node) {
    var nodes = [], dummy = new ListNode, prev = dummy
    var map = {}, index = 0
    while(node){
       if(node.next){
          nodes.push(node.next, node)
          node = node.next.next //连续跳两步
       }else{
          nodes.push(node)
          break
       }
    }
    for(var i = 0, el = null; i < nodes.length; i++){
         el = nodes[i];
         prev = prev.next = el
    }
    Object(el).next = null
    
    return dummy.next
};

leetcode 24. Swap Nodes in Pairs

原文:https://www.cnblogs.com/rubylouvre/p/12041739.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!