leetcode--从尾到头打印列表

143 阅读1分钟

1、第一种方法

使用了栈的原理

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @return {number[]}
 */
var reversePrint = function(head) {
    let arr1=[]
    while(head){
        arr1.push(head.val)
        head=head.next
    }
    let arr2=[]
    while(arr1.length){
        arr2.push(arr1.pop())
    }
    return arr2
};

2、第二种方法

数组首尾各自交换位置

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @return {number[]}
 */
var reversePrint = function(head) {
   let arr=[]
    while(head){
        arr.push(head.val)
        head=head.next
    }
    let left=null;
    let right=null
    let length=arr.length
    for(left=0,right=length-1;left<right;left++,right--){
        let temp=arr[left]
        arr[left]=arr[right]
        arr[right]=temp
    }
    return arr
};