反转链表
这道题是面试笔试里常出现的题目,想出来挺容易的,但不太好写
这里我贴出代码
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* temp;
ListNode* pre = nullptr;
ListNode* cur = head;
while(cur) {
temp = cur->next;// 存储当前节点的下一个节点
cur->next = pre;// 这里开始反转链表
pre = cur;// 这里是将节点交换,达成指针右移的目的
cur = temp;
}
return pre;
}
};
这里我用的方法只需要一次遍历,在遍历的同时,将指针的方向反转,达到反转链表的目的