数据结构与算法(链表) --javascript语言描述
从尾到头打印链表
输入一个链表,从尾到头打印链表每个节点的值。
思路:先将链表每个结点的值存入数组中,然后通过数组的reverse方法,即可从尾到头打印。
function ListNode(x){ this.val = x; this.next = null; } function printListFromTailToHead(head){ if(!head) { return 0; } else { let arr = new Array(); let cur = head; while(cur) { arr.push(cur.val); cur = cur.next; } return arr.reverse(); } } let node1 = new ListNode(1); let node2 = new ListNode(2); let node3 = new ListNode(3); node1.next = node2; node2.next = node3; console.log(printListFromTailToHead(node1));
这里需要反向打印链表,于是很自然的可以想到用递归来实现。要实现反过来输出链表,我们每次访问到一个节点的时候,先递归输出它后面的节点,再输出该节点自身,这样链表的输出结果就反过来了。
function printListFromTailToHead(head) { if(head !== null) { printListFromTailToHead(head.next); console.log(head.val); } }
相关推荐
OldBowl 2020-06-16
ustbfym 2020-06-04
freedomfanye 2020-05-03
koushr 2020-11-12
范范 2020-10-28
qiangde 2020-09-13
范范 2020-07-30
mingyunxiaohai 2020-07-19
zhaochen00 2020-10-13
Mars的自语 2020-09-27
steeven 2020-09-18
kka 2020-09-14
聚沙成塔积水成渊 2020-08-16
earthhouge 2020-08-15
aanndd 2020-08-12
bluetears 2020-07-28
horizonheart 2020-07-19
liushall 2020-07-18
bluetears 2020-07-05