js小白求问

这个方法是输入一个链表,然后从尾到头打印链表

    function ListNode(x){
        this.val = x;
        this.next = null;
    }
    function printListFromTailToHead(head)
    {
        // write code here
        var arr = [];
        while(head != null) {
            // var a = head.val;
            // console.log(a);
            arr.unshift(head.val);
            head = head.next;
        }
        return arr;
    }
    
1怎么调用才能实现从尾到头打印的功能
2为什么这样调用printListFromTailToHead(1,2,3)返回的是下图中的

clipboard.png

阅读 1.2k
1 个回答
  1. 参数要求传输的是链表的第一个元素,故需要这么创建链表后,然后再调用打印链表的方法

    var head = new ListNode(1);
    var second = new ListNode(2);
    var third = new ListNode(3);
    
    head.next = second; 
    second.next = third;
    
    printListFromTailToHead(head);  // [3, 2, 1]
  2. printListFromTailToHead要求传入一个链表对象,你传入3个数值,肯定会不能符合你的预期,因为数值没有val和next属性(返回undefined)。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题