题目描述
定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头节点。
解题思路:
- 定义两个指针preNode和nextNode,preNode表示反转链表的头节点,nextNode表示还未反转的链表的头结点。
- 当反转一个节点时候,同时更新preNode和nextNode即可。
代码
ListNode revertList(ListNode head) {
if (head == null) {
return null;
}
ListNode preNode = null;
ListNode curNode = head;
ListNode nextNode = null;
while (curNode != null) {
nextNode = curNode.next; // 还未反转的链表的头结点
curNode.next = preNode;
preNode = curNode; // 已反转的链表的头结点
curNode = nextNode;
}
return preNode;
}
网友评论