利用栈先进后出的特性完成题目

反转链表

http://www.nowcoder.com/questionTerminal/75e878df47f24fdc9dc3e400ec6058ca

利用栈先进后出的特性,先压栈,再弹栈,将最后一个弹出来的(也就是之前的链表头)的next赋值为null

import java.util.Stack;
public class Solution {
    public ListNode ReverseList(ListNode head) {
        Stack<ListNode> record = new Stack<ListNode>();
        ListNode pointer = head;

        if (head == null) {
            return null;
        }

        while (pointer != null) {
            record.push(pointer);
            pointer = pointer.next;
        }

        head = record.pop();
        pointer = head;

        while (!record.isEmpty()) {
            pointer.next = record.pop();
            pointer = pointer.next;
        }

        pointer.next = null;
        return head;
    }
}
全部评论
时间和空间复杂度满足吗?
点赞 回复 分享
发布于 2021-09-29 00:09

相关推荐

已老实求offer😫:有点像徐坤(没有冒犯的意思哈)
点赞 评论 收藏
分享
11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务