题解 | #重排链表#

重排链表

https://www.nowcoder.com/practice/3d281dc0b3704347846a110bf561ef6b

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */

/**
 * 
 * @param head ListNode类 
 * @return  void
 */

void reorderList(struct ListNode* head ) {
    
    int nodeNum = 0;
    int i = 0;
    struct ListNode *temp = head;
    struct ListNode **nodeArry = NULL;

    if ((head == NULL) || (head->next == NULL)){
        return;
    }

    while (temp != NULL){
        nodeNum++;
        nodeArry = (struct ListNode **)realloc(nodeArry, (nodeNum * sizeof(struct ListNode *)));
        nodeArry[(nodeNum - 1)] = temp;
        temp = temp->next;
    }

    for (i = nodeNum - 1; i >= nodeNum / 2; i--){
        nodeArry[nodeNum - 1 - i]->next = nodeArry[i];
        nodeArry[i]->next = nodeArry[nodeNum - i];
    }
    nodeArry[i + 1]->next = NULL;
}




全部评论

相关推荐

01-07 11:46
Java
如图:也是让我遇到逆天公司了,实习生是按天给工资,不忙直接强制休假了
baskly:公司为北京超图软件股份有限公司武汉分公司,明年公司应该会招新实习生,刷到的小伙伴快跑
点赞 评论 收藏
分享
点赞 评论 收藏
分享
头像
2025-12-23 12:56
英特尔_Software_engineer
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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