美文网首页
TypeScript 实现链表反转

TypeScript 实现链表反转

作者: 竹杖芒鞋轻胜码 | 来源:发表于2018-10-30 23:37 被阅读0次

定义数据结构

interface LinkNode {
    val : number;
    next : this;
}
class LinkNode implements LinkNode {
    constructor(number) {
        this.val = number;
    }
}

定义数据工厂函数

function createLink() {
    let arr = [new LinkNode(1), new LinkNode(2), new LinkNode(3)];
    // 使得每一个LinkNode的next链接起来
    arr.map((e, index, array) => {
        if (index < array.length - 1) {
            e.next = array[index + 1];
        } else {
            e.next = null;
        }
    // or e.next=(index<array.length-1)?array[index+1]:null);
    })
    return arr;
}

反转函数

const reverse_Link = (head : LinkNode) => {
    let next = null,
        prev = null;
    while (head != null) {
        next = head.next;
        head.next = prev;
        prev = head;
        head = next;
    }
    return prev;
}

结果

let testLink = createLink();
console.log(testLink);
console.log(reverse_Link(testLink[0]));
/*
​​​​​[ LinkNode { val: 1, next: LinkNode { val: 2, next: [Object] } },​​​​​
​​​​​  LinkNode { val: 2, next: LinkNode { val: 3, next: null } },​​​​​
​​​​​  LinkNode { val: 3, next: null } ]​​​​​
​​​​​​​​​​
​​​​​LinkNode { val: 3,​​​​​
​​​​​  next: LinkNode { val: 2, next: LinkNode { val: 1, next: null } } }​​​​​
*/

参考资料 https://blog.csdn.net/xyh269/article/details/70238501

相关文章

  • TypeScript 实现链表反转

    定义数据结构 定义数据工厂函数 反转函数 结果 参考资料 https://blog.csdn.net/xyh269...

  • 链表简单算法相关练习

    单链表反转: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 迭代方式实现: 复杂度分析: 时...

  • 单链表反转

    单链表反转 单链表初始化 输出 反转 释放 实现代码 尚未实现 元素插入 元素删除

  • Python实现双向链表

    Python实现双向链表的增删改查,反转链表

  • 反转单链表Java实现

    问题描述 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 解题思路 为了实现反转单链表,...

  • 双向链表反转

    双向链表反转 初始化 输出 反转 实现代码 尚未实现 插入元素 删除元素 双向链表反转实在是没有必要,应该是仅在面...

  • LeetCodeDay12 —— 反转链表&合并两个有序链表

    206. 反转链表 描述 反转一个单链表。 进阶 链表可以迭代或递归地反转。你能否两个都实现一遍? 思路 迭代版本...

  • LeetCode链表专题

    (一)LeetCode206.反转链表 题目描述: 反转一个单链表。 代码实现 (二)LeetCode160. 相...

  • Python编程题44--反转链表

    题目 给定一个单链表的头节点 head ,请实现反转链表,并返回反转后的链表。 例如:原链表转换为列表:[1, 2...

  • 15反转链表

    题目描述 输入一个链表,反转链表后,输出新链表的表头。 Java实现

网友评论

      本文标题:TypeScript 实现链表反转

      本文链接:https://www.haomeiwen.com/subject/gdxotqtx.html