AwesomeDevin / blog

Welcome to Devin's blog,I'm trying to be a fullstack developer and sticking with it !!!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

【算法系列 - 剑指Offer】从尾到头打印链表

AwesomeDevin opened this issue · comments

题目

输入一个链表,返回一个反序的链表。

思路

使用generateLinkList生成链表linklist,对链表linklist进行reverse

JS实现

class ListNode{
	constructor(nextIndex,val){
		this.nextIndex = nextIndex
		this.val = val
	}
}


function generateLinkList(length){    //generate linklist
	var list = []
	for(var i=0;i<length;i++)
	{
		// console.log(i)
		var listnode = new ListNode(i+1,i)
		list.push(listnode)
		// console.log(listnode)
	}
	return list
}


const linklist = generateLinkList(10)


function main(linkList){    //reverse linklist
	const result = []
	for(var index=0;index<linkList.length;index++)
	{
		// linkList[index].val 
		var listnode = new ListNode(linkList[index].nextIndex,linkList[linkList.length-index-1].val)
		result.push(listnode)
	}
	return result
}


console.log(main(linklist))
/*function ListNode(x){
    this.val = x;
    this.next = null;
}*/
function printListFromTailToHead(head)
{
    if(!head)
    {
        return 0
    }
    var res = []
    while(head)
    {
        res.push(head.val)
        head = head.next
    }
    return res.reverse()
}