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

反转链表

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

相关推荐

11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务