资讯专栏INFORMATION COLUMN

【刷算法】翻转单链表的递归和非递归方法

ziwenxie / 1936人阅读

摘要:题目描述输入一个链表,反转链表后,输出新链表的表头。分析典型的面试题以及大学数据结构课程常见题,没啥好分析的了代码实现递归版非递归版

题目描述

输入一个链表,反转链表后,输出新链表的表头。

分析

典型的面试题以及大学数据结构课程常见题,没啥好分析的了...

代码实现 递归版
function ListNode(x){
    this.val = x;
    this.next = null;
}
function ReverseList(h)
{
    if(h === null || h.next === null)
        return h;
    
    var reversedHead = ReverseList(h.next);
    
    h.next.next = h;
    h.next = null;
    
    return reversedHead;
}
非递归版
function ListNode(x){
    this.val = x;
    this.next = null;
}
function ReverseList(h)
{
    if(h === null || h.next === null)
        return h;
    
    var pre = null;
    var cur = h;
    while(cur !== null) {
        var next = cur.next;
        cur.next = pre;
        pre = cur;
        cur = next;
    }
    
    return pre;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/95836.html

相关文章

  • 算法翻转二叉树的递归和非递归解法

    摘要:题目描述操作给定的二叉树,将其变翻转为源二叉树的镜像。输入描述解题思路递归版本首先,对数据结构比较了解的话会想到用递归来解决。所谓递归,在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法来自维基百科。 题目描述 操作给定的二叉树,将其变翻转为源二叉树的镜像。 输入描述: 1 1 / ...

    wangbjun 评论0 收藏0
  • 从一道前端面试题谈起

    摘要:但是题目非要弄成链表的形式,说实在的,我真没有见过前端什么地方还需要用链表这种结构的除了面试的时候,所以说这种题目对于实际工作是没什么用处的,但是脑筋急转弯的智商题既然这样出了,我们就来看看怎么解决它吧。 今天在知乎上看到一个回答《为什么前端工程师那么难招?》,作者提到说有很多前端工程师甚至连单链表翻转都写不出来。说实话,来面试的孩子们本来就紧张,你要冷不丁问一句单链表翻转怎么写,估计...

    darkbaby123 评论0 收藏0
  • Java实现单向链表基本功能

    摘要:一前言最近在回顾数据结构与算法,有部分的算法题用到了栈的思想,说起栈又不得不说链表了。 一、前言 最近在回顾数据结构与算法,有部分的算法题用到了栈的思想,说起栈又不得不说链表了。数组和链表都是线性存储结构的基础,栈和队列都是线性存储结构的应用~ 本文主要讲解单链表的基础知识点,做一个简单的入门~如果有错的地方请指正 二、回顾与知新 说起链表,我们先提一下数组吧,跟数组比较一下就很理解链...

    idisfkj 评论0 收藏0
  • <LeetCode天梯>Day028 回文链表(双指针+递归+栈+数组) | 初级算法 | Pyth

    摘要:先实现栈操作遍历链表,把每个节点都进中然后再遍历链表,同时节点依次出栈,二者进行比较。 ?作者简介:大家好,我是车神哥,府学路18号的车神? ?个人主页:应无...

    miguel.jiang 评论0 收藏0

发表评论

0条评论

ziwenxie

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<