春风吹又生.c 2023-11-07 16:07 采纳率: 54.8%
浏览 8

为什么运行错误,哪里逻辑错了吗

将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度


/**
 * struct ListNode {
 *    int val;
 *    struct ListNode *next;
 *    ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
class Solution 
{
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @param m int整型 
     * @param n int整型 
     * @return ListNode类
     */
    ListNode* reverseBetween(ListNode* head, int m, int n)
    {
        // write code here
        ListNode* p = head;
        int j = 1;
        int i=1;
        ListNode* q = head;
        while(p&&j<m)//p指向第m个节点
        {
            p = p->next;
            j++;
        }
        while (q && i < n+1)//q指向第n个节点
        {
            q = q->next;
            i++;
        }

        
        ListNode* beg = p;
        ListNode* end = p->next;
                if (head == NULL || head->next == NULL)
                {
                    return head;
                }
                
                while (end!=q) 
                {
                    //先将end节点的下一节点接上beg节点,将 end 从链表中摘除
                    beg->next = end->next;
                    //将 end 移动至链表头
                    end->next = p;
                    p = end;
                    //调整 end 的指向,另其指向 beg 后的一个节点,
                    //为反转下一个节点做准备
                    end = beg->next;
                }
                return head;





    }
};
  • 写回答

3条回答 默认 最新

  • 2301_80951227 2023-11-07 16:12
    关注

    我感觉没有错啊

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 11月7日

悬赏问题

  • ¥100 or-tools的相关问题
  • ¥30 怎么烘焙完整模型的法线
  • ¥15 有可能用平板通过拓展坞来烧录程序吗(keil5的那种)
  • ¥15 网络分析设施点无法识别,网络构建部分有效
  • ¥15 状态图的并发态问题咨询
  • ¥15 PFC3D,plot
  • ¥15 VAE模型编程报错无法解决
  • ¥100 基于SVM的信息粒化时序回归预测,有偿求解!
  • ¥15 物体组批优化问题-数学建模求解答
  • ¥350 麦克风声源定位坐标不准