leetcode|简单:剑指 Offer 06. 从尾到头打印链表

jupiter
2022-06-10 / 0 评论 / 494 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年06月10日,已超过925天没有更新,若内容或图片失效,请留言反馈。

1.题目

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

示例 1:

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

限制:

0 <= 链表长度 <= 10000

2. 题解

2.1 思路分析

  1. 统计链表长度
  2. 申请数组并逐一填入链表元素
  3. 反转数组

2.2 代码实现

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public int[] reversePrint(ListNode head) {
        // 1.统计链表长度
        int listLen = 0;
        ListNode tmp = head;
        while (tmp!=null){
            listLen++;
            tmp = tmp.next;
        }
        // 2.申请数组并逐一填入链表元素
        int[] res = new int[listLen];
        tmp = head;
        int resIndex=0;
        while (tmp!=null){
            res[resIndex++] = tmp.val;
            tmp = tmp.next;
        }

        // 3.反转数组
        for (int i = 0; i < listLen/2; i++) {
            int tmpItem = res[i];
            res[i] = res[listLen-1-i];
            res[listLen-1-i] = tmpItem;
        }
        
        return res;
    }
}

2.3 提交结果

提交结果执行用时内存消耗语言提交时间备注
通过0 ms42.1 MBJava2022/06/10 10:30添加备注

参考资料

  1. https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof
0

评论 (0)

打卡
取消