java代码
public ListNode reverseList(ListNode head) {
ListNode tmp = head;
ListNode pre = null;
while (tmp != null) {
ListNode next = tmp.next;
tmp.next = pre;
pre = tmp;
tmp = next;
}
return pre;
}
C++代码
ListNode* reverseList(ListNode* head) {
ListNode* tmp = head;
ListNode* pre = nullptr;
while (tmp != nullptr) {
ListNode* next = tmp->next;
tmp->next = pre;
pre = tmp;
tmp = next;
}
return pre;
}
总结
翻转链表,核心就是把链表之间的指针指向调整,并且每次调整需要保证当前节点和前置节点的正确性,需要提前或者下一个节点进行暂存,保证整个反转的正确性;
C++和Java的主要区别,就是C++都是使用的指针进行链表节点的访问。
打卡完成,继续坚持!!!希望友友们监督哈