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

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

2022-07-28 10:28:00 jjj34

题目描述

思路:利用栈的后进先出的特性来实现

1.创建栈

2.遍历链表,将链表节点对应的值入栈

3.声明一个数组,长度为栈的长度,出栈

知识点:栈,链表

栈的相关知识点:参考这篇博客

剑指 Offer 09. 用两个栈实现队列_jcxj2934的博客-CSDN博客

链表的相关知识点:

如图,链表这个数据结构中包含了三个值,

第一个是整数, 即节点对应的值

第二个是指针,即指向下一个节点(作用:将链表连接起来)

如图,正因为有了指向下一个节点的指针,链表才能连接起来

末尾节点没有指向的对象,指针的值为null 

第三个是赋值,给链表中的节点赋值

代码如下

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public int[] reversePrint(ListNode head) {
         //创建栈,利用栈后进先出的特性
        //创建一个指针指向链表的头
        //创建一个数组,长度为栈的大小
        Stack<Integer> st;
        st=new Stack<>();
        while(head != null) //利用尾节点的指针值为null来判断链表是否全部遍历
        {
            st.push(head.val);
            head=head.next;
        }
        int n =st.size();
        int result[] = new int [n];
        int i=0;
        while(!st.empty())
        {
            result[i]=st.pop();
            i++;
        }
        return result;

    }
}

 

原网站

版权声明
本文为[jjj34]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_44418229/article/details/124680164