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

合并两群能量值

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

知识点:

链表/合并

分析:

如图,然后依次比较cur1和cur2的值,大的就放到head的next,依次比较即可。

注意:

谁的值大谁当链表的头/

  1. 链表不一样长可能,所以要处理这种情况。在每一次while的循环结束之后(两个链表合并结束后),判断一下cur1遍历完了没,或者cur2遍历完了没,谁完了,就让pre的next指向另一个。
  2. 最后返回head即可。

编程语言:

C++

完整代码:

    ListNode* mergeEnergyValues(ListNode* l1, ListNode* l2) {
        if(l1 == nullptr || l2 == nullptr) return l1 == nullptr ? l2 : l1;
        ListNode* head = l1->val <l2->val? l2 : l1; //谁的头大,谁当新的头
        ListNode* pre = head; //辅助指针,方便找到当前处理指针的前一个指针
        ListNode* cur1 = head->next; //当前处理指针,指向新头的下一个,以便操作
        ListNode* cur2 = head == l1 ? l2 : l1; //cur2的话 去另一个链表
        while(cur1 && cur2){
            if(cur1->val > cur2->val){
                pre->next = cur1;
                cur1 = cur1->next;
            }else{
                pre->next = cur2;
                cur2 = cur2->next;
            }
            pre = pre->next;
        }
        pre->next = cur1 == nullptr ? cur2 : cur1;
        return head;
    }

全部评论

相关推荐

点赞 评论 收藏
分享
06-15 20:57
已编辑
门头沟学院 Java
CARLJOSEPH...:年轻人有傲气很正常,但是建议工作前洗净傲气。 说实在的,什么奖学金什么奖项的都很一般。尊重你的老师,在有时间的时候去上课,真遇到走不开的事,请态度端正地向你的老师说明情况,请求请假。我相信任何一个有师德的老师都会允许的(我的老师就是这样)。
点赞 评论 收藏
分享
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
榕城小榕树:1200单休,我去干点啥别的不好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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