题解 | #反转链表#

反转链表

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

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/

public class Solution {
    public ListNode ReverseList(ListNode head) {

        // 先判断是否为空
        if(head == null){
            return null;
        }
        
        // 记录head的前后ListNode,用作改变顺序
        ListNode preNode = null;
        ListNode nextNode = null;

        // 判断当前是否为空(当前为空时就不需要改变指向了)
        while(head != null){
            
            // 先获得下一个值
            nextNode = head.next;

            // 改变自身指向
            head.next = preNode;

            // 将自身设为preNode
            preNode = head;

            // 修改head为nextNode
            head = nextNode;
        }

        return preNode;

    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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