题解 | #合并两个排序的链表#

合并两个排序的链表

http://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

其实做过了,不过这次不用首元结点解决的 差别不大,先判断出取哪一个作为第一个结点(以此代替首元结点)

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
      if (pHead1 == nullptr || pHead2 == nullptr) {
         return pHead1 == nullptr ? pHead2 : pHead1;
      } 
      
      ListNode *head = pHead1->val < pHead2->val ? pHead1 : pHead2;
      ListNode *list1, *list2;
      list1 = head->next;
      list2 = head == pHead1 ? pHead2 : pHead1;
      ListNode *cur_head = head;
      
      while (list1 && list2) {
        if (list1->val < list2->val) {
          cur_head->next = list1;
          list1 = list1->next;
        } else {
          cur_head->next = list2;
          list2 = list2->next;
        }
        cur_head = cur_head->next;
      }
      
      cur_head->next = list1 == nullptr ? list2 : list1;
      
      return head;
    }
};
全部评论

相关推荐

不懂!!!:感觉你的项目描述太简单了,建议使用star描述法优化提炼一下,就是使用什么技术或方案解决了什么问题,有什么效果或成果,例如:对axios进行了二次封装,实现了请求的统一管理、错误的集中处理以及接口调用的简化,显著提高了开发效率和代码维护性,使用canvas技术实现了路线绘制功能,通过定义路径绘制函数和动态更新机制,满足了简化的导航可视化需求,提升了用户体验。像什么是使用其他组件库,基本功能描述就最好不要写到项目成果里面去了,加油
点赞 评论 收藏
分享
03-26 15:18
已编辑
华北水利水电大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务