题解 | #反转链表#

反转链表

https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

利用栈的特性,来遍历取出链表的值,后入栈。出栈时即为反顺序,建立新链表即可。

public ListNode ReverseList(ListNode head) {
        //判断是否为空。
        if(head==null){
            return head;
        }
        //设计一个指引节点pointer,方便遍历
        ListNode pointer=head;
        //设计一个栈结构stack,方便取值
        Stack<Integer> stack=new Stack();
        while(pointer!=null){
            //依次将其节点值入栈保存,目的是其出栈时顺序是相反的,懒得排序了,我们直接拿值即可
            stack.push(pointer.val);
            pointer=pointer.next;
        }
        //出栈第一个值,newHead作为首节点
        ListNode newHead=new ListNode(stack.pop());
        pointer = newHead;//设计一个指引节点pointer,方便遍历
        while (!stack.isEmpty()){
            int pop = stack.pop();
            ListNode node = new ListNode(pop);  //生成新的节点node,将出栈值作为其val
            pointer.next=node;               //把新节点连起来
            pointer=pointer.next;           //当前节点往后移动
        }
        return newHead;//返会头节点
    }


#剑指offer##21天打卡剑指offer#
全部评论

相关推荐

05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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