JavaScript / TypeScript for LeetCode

当前进程:

  • 开始时间:2020.6.27
  • 结束时间:undefined

GitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode

参考视频:https://www.bilibili.com/video/BV1wA411b7qZ

1、题目要求

( LeetCode-第206题 ) 反转链表
反转一个单链表。

示例 :

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-linked-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2、解题思路

解题思路:链表题,玩指针

  1. 创建三个指针prev、curr、next

  2. 循环四部曲:
    2.1、next=curr.next,先用next占住下一个节点,这样即使断开和下一节点的连接,也能通过next指针,找到它
    2.2、curr.next=prev,把当前节点指向前一个节点
    2.3、prev=curr,前一个节点指针移到当前节点
    2.4、curr=next,当前节点指针移到下一个节点

  3. 循环遍历到curr为null,即走完了链表,返回prev指向的节后,即最后一个节点,也是反转链表的head

2.1、JavaScript Solution

/*
解题思路:链表题,玩指针
1、创建三个指针prev、curr、next
2、循环四部曲:2.1、next=curr.next,先用next占住下一个节点,这样即使断开和下一节点的连接,也能通过next指针,找到它2.2、curr.next=prev,把当前节点指向前一个节点2.3、prev=curr,前一个节点指针移到当前节点2.4、curr=next,当前节点指针移到下一个节点
3、循环遍历到curr为null,即走完了链表,返回prev指向的节后,即最后一个节点,也是反转链表的head
*/
/*** Definition for singly-linked list.* function ListNode(val) {*     this.val = val;*     this.next = null;* }*/
/*** @param {ListNode} head* @return {ListNode}*/
var reverseList = function (head) {// 1、创建三个指针prev、curr、nextlet prev = null;let curr = head;let next = head;// 链表没走完的话,就一直往后挪// 2、循环四部曲:while (curr !== null) {// next = curr.next;// curr.next = prev;// prev = curr;// curr = next;// 另一种写法:ES6结构赋值,不需要next指针了,只需要下面这些// curr.next = prev;  curr.next指向prev// prev = curr;       prev指向curr// curr = curr.next;  curr指向curr.next[curr.next, prev, curr] = [prev, curr, curr.next];}// 3、循环遍历到curr为null,即走完了链表,返回prev指向的节后,即最后一个节点,也是反转链表的headreturn prev;
};

2.2、TypeScript Solution

/*** Definition for singly-linked list.* class ListNode {*     val: number*     next: ListNode | null*     constructor(val?: number, next?: ListNode | null) {*         this.val = (val===undefined ? 0 : val)*         this.next = (next===undefined ? null : next)*     }* }*/function reverseList(head: ListNode | null): ListNode | null {let prev: ListNode | null = null;let curr: ListNode | null = head;let next: ListNode | null = head;while (curr !== null) {// next = curr.next;// curr.next = prev;// prev = curr;// curr = next;[curr.next, prev, curr] = [prev, curr, curr.next];}return prev;
}

每日一题 -- LeetCode (十六)相关推荐

  1. 每日经典算法题(十六) 九九乘法表

    每日经典算法题(十六) 九九乘法表 九九乘法表:Multiplication Table 99 题目 输出 9 * 9 口诀 程序分析 分行与列考虑,共9行9列,i 控制行,j 控制列 思路 非常经典 ...

  2. 猿人学题库十六题——js加密_表情包+sojson6.0——满天坑

    猿人学题库十六题--js加密_表情包+sojson6.0 1.  首先 进入 浏览器的开发者工具, 进去后首先还是 无线debug ,找到 debugg 对应的行数,右击选择 never pause ...

  3. 每日刷题记录 (十五)

    文章目录 第一题: 剑指 Offer 57. 和为s的两个数字 解题思路: 代码实现: 第二题: 剑指 Offer 57 - II. 和为s的连续正数序列 解题思路: 代码实现: 第三题: 剑指 Of ...

  4. 深入浅出CChart 每日一课——第十六课 实习之旅,百年老店之新锐WTL

    上节课笨笨给大家介绍了CChart在微软MFC框架下的应用,本节课的内容仍然和百年老店微软相关,只不过主角换成WTL了. 不了解WTL的同学可以先找度娘温习一下.度娘在怀,今生何求.郎君啊,你是不是闷 ...

  5. 鼠友题库每日百题(十)

    题目1 [病历摘要:??男性,60岁,在抗洪抢险一线,突然获悉其母病故后发生胸痛,呈持续性压榨样疼痛,伴大汗淋漓2小时入急诊.既往有高血压病史5年.糖尿病史10年.吸烟史40余年.体检:体温36.7℃ ...

  6. 【精选】JAVA算法题(十六)

    1.脏矩形合并 题目: 在2D渲染系统中,局部渲染是常见提升渲染性能的方法.如果界面中有元素发生了改变,我们可以将这个元素所占矩形区域标记为脏矩形,那么在接下来的渲染中,我们仅对每个脏矩形所占矩形区域 ...

  7. 爱创课堂每日一题八十九天- CSS中link和@import的区别是:

    Link属于html标签,而@import是CSS中提供的br/>在页面加载的时候,link会同时被加载,而@import引用的CSS会在页面加载完成后才会加载引用的CSS @import只有在 ...

  8. 程序员面试100题之十六:二叉树中两个节点的最近公共父节点

    这个问题可以分为三种情况来考虑: 情况一:root未知,但是每个节点都有parent指针 此时可以分别从两个节点开始,沿着parent指针走向根节点,得到两个链表,然后求两个链表的第一个公共节点,这个 ...

  9. 程序员面试100题之十六:二叉树中两个节点的最近公共父节点(最低的二叉树共同祖先)

    这个问题可以分为三种情况来考虑: 情况一:root未知,但是每个节点都有parent指针 此时可以分别从两个节点开始,沿着parent指针走向根节点,得到两个链表,然后求两个链表的第一个公共节点,这个 ...

最新文章

  1. 为TextMate扩展全屏功能
  2. Eclipse中新建WEB项目,JSP页面报错。
  3. 使用 Caddy 自动化发布 Web 应用
  4. 【转】The Google File System 中文版
  5. 不同地图坐标系的坐标转换
  6. 【Java】欧拉回路的判定
  7. 获得创建临时表的session id
  8. 联想r720内存频率_联想小新Pro 14 2021怎么样 联想小新Pro 14 2021全面评测
  9. 比较两个文本中数据不同的行
  10. Ajax基础知识《一》
  11. 利用ajax查询数据库显示在前台,ajax动态查询数据库数据并显示在前台的方法
  12. 通达2017OA数据字典
  13. 流畅的Python笔记
  14. 【第1课 项目愿景】PMP敏捷精讲第五章:项目立项 1/4-科科过PMP
  15. 计算机应用选购哪些电脑,购买电脑有哪些要注意的
  16. docker运行jenkins挂掉_使用Jenkins在Kubernetes上设置CI/CD管道
  17. 智慧灯杆解决方案之智慧景区(园区)建设
  18. 声纹技术(七):声纹技术的未来
  19. 魔方自动还原程序3D版本和2D 修正版
  20. 可视化编程语言_可视化编程语言影响图

热门文章

  1. 在CSDN的第一粒种子
  2. 读书笔记-人月神话18
  3. Nginx 市场份额全球第一,10月全球Web服务器调查报告出炉!
  4. 武大计算机学院软件工程专硕,2021年武汉大学软件工程(083500)硕士研究生招生信息_考研招生计划和招生人数 - 学途吧...
  5. C语言,if 语句 系列
  6. 物联网-传输课程设计-数据采集与显示
  7. Minio设置文件链接永久有效
  8. mysql pacemaker_集群:corosync+pacemaker实现MySQL服务高可用
  9. 网站301跳转是什么?
  10. cytoscape安装java_Cytoscape软件学习(1):简介及安装