美文网首页数据结构
数据结构题目20:逆转一个线性链表

数据结构题目20:逆转一个线性链表

作者: 玲儿珑 | 来源:发表于2020-05-01 02:52 被阅读0次

    题目:逆转一个线性链表
    解题思路:所谓线性表的逆战操作是在不增加新的链结点空间的前提下,通过改变链结点指针域内地址的方式来依次改变数据元素的逻辑关系。
    具体算法实现如下:
    这里我们会用到toString(list))来打印一个线性链表出来。
    这里我们会用到createLinklist(n)来建立一个线性链表出来

    function reverseList(list) {
        let p, q, r //p表示要逆转的结点,q表示正在逆转的结点,r表示上一个逆转完的结点
        p = list 
        q = null 
        while( p!=null ){
            r = q
            q = p
            p = p.link
            q.link = r
        }
        return q
    }
    
    var list = createLinklist(10)
    console.log('创建的list为:', toString(list))
    
    var r_list = reverseList(list)
    console.log('逆转后的链表为:', toString(r_list))
    

    相关文章

      网友评论

        本文标题:数据结构题目20:逆转一个线性链表

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