题解 | #合并两群能量值#
合并两群能量值
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#