题解 | #合并两群能量值#

合并两群能量值

https://www.nowcoder.com/practice/d728938f66ac44b5923d4f2e185667ec

考察知识点:链表

题目分析:通过判断两个链表的值,依次按照两个链表当前的值的大小赋值,将两个链表重新组成新的链表,并输出新的链表

采用的编程语言:C

完整的编码代码:如下所示

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param l1 ListNode类 
 * @param l2 ListNode类 
 * @return ListNode类
 */
#include <time.h>
struct ListNode* mergeEnergyValues(struct ListNode* l1, struct ListNode* l2 ) {
    struct ListNode *tmp_head1 = l1, *tmp_head2 = l2;
    struct ListNode* tmp = NULL, *ret_head = NULL;

    while (1) {
        if (tmp_head1 == NULL || tmp_head2 == NULL) {		// 但有某条链表遍历结束,就可以结束循环了
            if (tmp != NULL) {
                if (tmp_head1 == NULL)		// 当时l1链表遍历结束了,就表明l2链表可能还有成员,可以直接把l2没有遍历完的成员拼接给新的链表
                    tmp->next = tmp_head2;
                else		// 一样的,将l1的成员拼接给新的链表
                    tmp->next = tmp_head1;
            } else {
                if (tmp_head1 == NULL)		// 如果新的链表没有初始化,就表明输入的链表中有空链表
                    ret_head = tmp_head2;		// 如果l1链表是空链表的话,输出的链表就可以直接是l2
                else
                    ret_head = tmp_head1;		// l2链表为空时,直接输出l1链表
            }
            break;
        }

        if (tmp_head1->val > tmp_head2->val) {		// 如果当前成员1比成员2大时,就将成员1的值赋值给新链表
            if (tmp == NULL) {		// 如果新链表没有初始化,就给新连进行初始化
                tmp = tmp_head1;
                ret_head = tmp_head1;	// 标记新链表的链表头
            } else {
                tmp->next = tmp_head1;		// 新链表已经初始化了,那就把当前的值赋值给tmp的next指针
                tmp = tmp->next;		// 更新新链表的当前值
            }
            tmp_head1 = tmp_head1->next;	// 更新链表1的当前值
        } else {
            if (tmp == NULL) {
                tmp = tmp_head2;
                ret_head = tmp_head2;
            } else {
                tmp->next = tmp_head2;
                tmp = tmp->next;
            }
            tmp_head2 = tmp_head2->next;
        }
    }

    return ret_head;
}

面试高频TOP202解析 文章被收录于专栏

采用Java,C,Python等方法去解答面试高频TOP202题目,

全部评论

相关推荐

2024-11-13 20:32
门头沟学院 Java
面向未来编程code:我没看到他咋急,他不就问你个问题。。。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务