[ JS ]反转链表 -迭代求解

文章目录

    • 题目
    • 迭代求解
      • 代码

题目

反转一个单链表
[ JS ]反转链表 -迭代求解_第1张图片

迭代求解

  • 新建一个链表 i 来存储反转后的结果,设置头节点。令 p 指向head链表的第一个元素。
  • 当p不为空时,将 p 指向的元素复制到 q 中。
  • 将 q 加进链表 i 中,由于是反转的,所有每次应该将新创建的 q 插入到 i 头节点后面的第一个链表。q 的next指向i 头节点的next,i头节点的next指向 q 。
  • 更新 q 的值,使它指向下一个元素。
  • 返回 i.next

代码

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @return {ListNode}
 */
var reverseList = function(head) {
    let p=head;
    let i=new ListNode("first");
    
    while(p!=null){
        let q=new ListNode(p.val);
        q.next=i.next;
        i.next=q;
        p=p.next;
        
    }
    return i.next;
    

};

在这里插入图片描述

你可能感兴趣的:([ JS ]反转链表 -迭代求解)