Loading

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

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

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

示例 1:

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

限制:

0 <= 链表长度 <= 10000

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public int[] reversePrint(ListNode head) {
    
		int len = 0;
    //定义node 指向 头节点
		ListNode node = head;
      //当头节点不是空值时
		while (node != null) {
      //len+1
			len++;
      //头节点指向下一个节点
			node = node.next;
		}
      //经过while之后,此时len中保存的值就是这个List链表有多少节点的数量
		
     //此时的arr的长度和该链表的长度是一致的
		int[] arr = new int[len];	
		node = head;
      //从高遍历到低位,进行转换
		for (int i = len - 1; i > -1; i--) {
			arr[i] = node.val;
			node = node.next;
		}

		return arr;
    }
 
}
posted @ 2021-09-22 11:15  Pen9  阅读(28)  评论(0)    收藏  举报