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

反转链表

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

相关推荐

点赞 评论 收藏
分享
06-26 10:08
门头沟学院 C++
北京Golang实习,一个月4700,吃住都不报,公司位置在海淀。请问友友怎么看呢?如果要租房的话有什么建议吗
码农索隆:租房肯定是合租了,剩下的钱,差不多够正常吃饭了,看看能不能学到东西吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务