当前位置:网站首页>剑指 Offer 06. 从尾到头打印链表

剑指 Offer 06. 从尾到头打印链表

2022-06-22 20:52:00 前端粉刷匠

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

例子:

	输入:head = [1,3,2]
	输出:[2,3,1]

解法1:
思路:将head数组变成一个链表,然后将链表的头输入。每次将第一个插入到数组的第一个最前面。考察的知识点就是链表的逆置,突破点在与先找到最后一个节点,然后从倒数第二个开始逆转。

        let head = [1,3,2]
		// 创建链表
        function ListNode(val){
    
            this.val = val;
            this.next = null;
        }

        let a = new ListNode();
        let b = new ListNode();
        let c = new ListNode(); 
        a.val = head[0];
        a.next = b;
        b.val = head[1];
        b.next = c;
        c.val = head[2];
        c.next = null;
		
		// 反转数组
        function reversePrint(head){
    
            let arr = []
            while(head != null){
    
                arr.unshift(head.val)
                head = head.next;
            }
            return arr;
        }

解法2:
思路:将链表中的数据保存到数组中,然后使用数组的reverse()方法逆转

   function reversePrint(head){
    
          let arr = []
          while(head != null){
    
              arr.push(head.val)
              head = head.next;
          }
          return arr.reverse();
   }

暂时想多这么多~ 如果大家还有好方法,欢迎推荐~~

七夕快乐~~

原网站

版权声明
本文为[前端粉刷匠]所创,转载请带上原文链接,感谢
https://blog.csdn.net/sxm666666/article/details/108215794