struct结构体、链表

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param head ListNode类 
 * @param m int整型 
 * @param n int整型 
 * @return ListNode类
 */
struct ListNode* reverseBetween(struct ListNode* head, int m, int n ) {

    // write code here
    struct ListNode*prev=NULL;
    struct ListNode*next=NULL;
    struct ListNode*phead=head;
    struct ListNode*reverseBegin=NULL;
    struct ListNode*reverseEnd=NULL;//define struct,define as NULL

    int i=1;
    if(NULL==head||NULL==head->next||m>=n)
    {
        return head;
    }

    while(NULL!=head)
    {
       if(i<m)
            {
                reverseBegin=head;
                head=head->next;//reverse in i==m
            }

        else if(i>n)
        {
            head=head->next;//remain unchanged
        }

        else {
            if(i==m)   
        {
            reverseEnd=head;

        }
        next=head->next;
        head->next=prev;
        prev=head;
        head=next;
        if(i==n)
        {
            if(1==m)
                {
                    phead=prev;
                    if(NULL!=head)
                    {
                        reverseEnd->next=head;
                    }

                }
                else{
                    reverseBegin->next=prev;
                    reverseEnd->next=head;
                }


        }





        }

    i++;

    }
return phead;
}

全部评论
点赞 回复 分享
发布于 2024-04-22 11:01 江苏

相关推荐

昨天 12:25
重庆大学 C++
到底要什么样的学历才配进呢
投递速腾聚创等公司7个岗位
点赞 评论 收藏
分享
白火同学:先说结论,准大三不是特别好找实习,boss沟通300+没有实习是很正常的情况。一是暑期实习时间太短了,二是在这么多准大四都找不到实习,从实习时间和掌握技术层面,企业会优先看他们。 再说简历,其实985本+准大三到这水平的简历也很优秀了,要说的话,项目经历可以再优化一下,可以基本围绕采取STAR原则,分为项目概述、技术架构、技术亮点、实现结果,再发给AI润色一下。 最后说操作,准大三的话,如果想找实习那就多投,不过现在也7月中旬了,时间上已经略晚了。如果7月底实在找不到,也可以多刷点算法,多学点技术,这实习也不至于一定得有,当然有更好。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务