代码精简技巧

Posted ttblog5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码精简技巧相关的知识,希望对你有一定的参考价值。

前言:

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

技术图片

 

 

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

 

 

 

以上是关于代码精简技巧的主要内容,如果未能解决你的问题,请参考以下文章

Android课程---Android Studio使用小技巧:提取方法代码片段

VS2015使用技巧 打开代码片段C#部分

26个jQuery代码片段使用技巧

VS中添加自定义代码片段——偷懒小技巧

提效小技巧——记录那些不常用的代码片段

你可能不知道的JavaScript代码片段和技巧(下)