1. // 链表结构和数组不同,不能直接reverse
    2. //可以遍历链表,push进一个arr,然后反转arr
    3. var reversePrint = function(head) {
    4. let arr = []
    5. while(head){
    6. arr.push(head.val)
    7. head = head.next
    8. }
    9. // return arr.reverse() 可以不用后面的
    10. let res = []
    11. while(arr.length>0){
    12. res.push(arr.pop())
    13. }
    14. return res
    15. };
    16. //如果数据过大,会溢出吗???
    17. //用双指针
    18. var reversePrint = function(head) {
    19. let cur = null
    20. let pre = head
    21. while(pre){
    22. let tmp = pre.next
    23. pre.next = cur
    24. cur = pre
    25. pre = tmp
    26. }
    27. // 此时cur是指向原链表尾端,倒叙
    28. // 遍历cur,push进一个arr
    29. let res = []
    30. while(cur){
    31. res.push(cur.val)
    32. cur = cur.next
    33. }
    34. return res
    35. }
    36. //递归法