逆转链表

Posted xueheo

tags:

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

每次我都不想接触链表和树的操作

链表结构
/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */

这次要求逆转链表结构(javascript)

核心思想是通过先存储链表当前节点的next数据  --------- let tt = tem.next;

使当前的节点的next指向我们设置的新链表(开始为null)---------------tem.next = newhead;

更新新链表 ---------------------newhead = tem;

更新旧链表准备下一次循环 ----------------------tem = tt;

 1  /**
 2  * @param {ListNode} head
 3  * @return {ListNode}
 4  */
 5 var reverseList = function(head) {
 6         if(head === null){
 7             return null;
 8         }
 9         let newhead = null;
10         let tem = head;
11         while (tem != null){
12             let tt = tem.next;
13             tem.next = newhead;
14             newhead = tem;
15             tem = tt;
16         }
17         return newhead;
18 };

 

以上是关于逆转链表的主要内容,如果未能解决你的问题,请参考以下文章

逆转交替合并两个链表

逆转双向链表问题

单向链表逆转方法

单链表的逆转

reorder-list——链表快慢指针逆转链表链表合并

数据结构与算法 —— 单向链表的逆转