206. 反转链表

2022-10-26 18:11:55 浏览数 (1)

反转一个单链表。

示例:

代码语言:javascript复制
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题?

解:迭代

代码语言:javascript复制
    public ListNode reverseList(ListNode head) {
        ListNode newListNode = null;
        while (head != null) {
            //保存下一个要遍历的节点
            ListNode nextListNode = head.next;
            //当前节点的next设为newListNode
            head.next = newListNode;
            //设置新节点
            newListNode = head;
            //设置下一个要遍历的节点
            head = nextListNode;
        }
        return newListNode;
    }

0 人点赞