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

合并两群能量值

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

1.考察知识点

单链表、链表节点遍历

2.编程语言

C

3.解题思路

1.将两个递减子链表进行合并,可以直接创建一个新的节点,每次将l1与l2链表中的最大值连接在新的节点的后面,直到l1或者l2为空,最后将不为空的链表添加在后面即可。

2.定义一个新链表的头指针用于遍历之后的节点,根据整体思路实现,最后由于新链表头节点为NULL,所以返回res->next即为所求结果。

4.完整代码

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param l1 ListNode类 
 * @param l2 ListNode类 
 * @return ListNode类
 */
#include <stdlib.h>
struct ListNode* mergeEnergyValues(struct ListNode* l1, struct ListNode* l2 ) {
    // write code here
    struct ListNode* res = (struct ListNode*)malloc(sizeof(struct ListNode));
    struct ListNode* head = res;
    while(l1 && l2)
    {
        if(l1->val > l2->val)
        {
            head->next = l1; 
            l1 = l1->next;
        }
        else {
            head->next = l2;
            l2 = l2->next;
        }
        head = head->next;
    }
    head->next = l1 == NULL ? l2:l1;
    return res->next;
}

#面试高频TOP202#
全部评论

相关推荐

吴offer选手:学到了,下次面试也放张纸在电脑上,不然老是忘记要说哪几个点
点赞 评论 收藏
分享
网安已死趁早转行:山东这地方有点说法
点赞 评论 收藏
分享
我开始觉得这个世界就是很荒缪,越没钱越让你花钱,吃喝房租、面试交通,真是处处花钱
碳酸水里有碳酸:没办法,都是这么过来的,但是我当时基本都是线上面试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务