码迷,mamicode.com
首页 > 其他好文 > 详细

代码精简技巧

时间:2020-03-18 23:55:00      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:swa   air   否则   获得   图片   pair   style   递归   let   

前言:

  记录看到大神们精简技代码的技巧。

技术图片

 

 

var swapPairs = function(head) {
    // 1. 确认 head 大于等于两个,否则返回;
    if (!head || !head.next) return head;
    // 2. 新建链表哨兵头并创建指针curr;
    let res = new ListNode(null);
    res.next = head;
    let prev = res;
    // 3. 循环开始
    //    3.1 走两步,存为fst, snd;
    //    3.2 哨兵->snd, fst->snd.next, snd->fst;
    //    3.3 推进 curr = curr.next.next;
    while (prev.next && prev.next.next) {
        let [fst, snd] = [prev.next, prev.next.next];
        [prev.next, fst.next, snd.next] = [snd, snd.next, fst];
        prev = prev.next.next;
    }
    // 4. 返回res.next;
    return res.next;
};
var swapPairs = function(head) {
    // 自递归思路:
    //    1. 确认head大于等于两个,否则返回
    if (!head || !head.next) return head; 
    //    2. 获得第二个节点;
    let next = head.next;
    //    3. 第一个节点指向第三个节点, 传入第三个节点开始递归,获得已排序的链表;
    head.next = swapPairs(next.next);
    //    4. 第二个节点指向第一个节点
    next.next = head;
    //    5. 返回第二个节点;
    return next;
};
var swapPairs = function(head) {
    if (!head || !head.next) return head;
    let [fst, snd] = [head, head.next];
    [fst.next, snd.next] = [swapPairs(snd.next), fst];
    return snd;
};

 

 

 

代码精简技巧

标签:swa   air   否则   获得   图片   pair   style   递归   let   

原文地址:https://www.cnblogs.com/TTblog5/p/12521143.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!