挑战刷leetcode第六天( 链表-翻转链表)

92 阅读1分钟

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++都是使用的指针进行链表节点的访问。

打卡完成,继续坚持!!!希望友友们监督哈