Advertisement

143. 重排链表(C++|题解|源程序)

阅读量:

143. 重排链表(C++|题解|源程序)

  • 1.题目解析
    • 2.代码实现
    • 3.原始程序

1.题解

  • 核心理念较为直接:
    • 首步操作为定位链表的中点位置;
    • 紧随其后的是对链表后半段实施逆序处理;
    • 最后一步则是将链表前半部分与已逆序的后半部分进行整合。

2.源码

复制代码
    /** * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode() : val(0), next(nullptr) {}
     *     ListNode(int x) : val(x), next(nullptr) {}
     *     ListNode(int x, ListNode *next) : val(x), next(next) {}
     * };
     */
    class Solution {
    public:
    void reorderList(ListNode* head) {
        if (head == NULL) {

全部评论 (0)

还没有任何评论哟~