首页 > 其他分享 >剑指Offer 25. 合并两个排序的链表

剑指Offer 25. 合并两个排序的链表

时间:2023-08-27 16:33:44浏览次数:44  
标签:25 ListNode nil Offer Next 链表 l2 l1

题目链接: 剑指Offer 25. 合并两个排序的链表

题目描述:

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

解法思路:

在两链表向后遍历的过程中,哪个更小一点,哪个先放在合并后的链表中。最后哪个链表剩余,直接接在合并链表的后面即可。

代码:

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {

    dummy := &ListNode{}
    
    p := dummy
    for l1 != nil && l2 != nil {
        if l1.Val < l2.Val{
            p.Next = l1
            l1 = l1.Next
            p = p.Next
        }else{
            p.Next = l2
            l2 = l2.Next
            p = p.Next
        }
    }
    if l1 != nil {
        p.Next = l1
    }
    if l2 != nil {
        p.Next = l2
    }
    return dummy.Next
}

标签:25,ListNode,nil,Offer,Next,链表,l2,l1
From: https://www.cnblogs.com/lxing-go/p/17660442.html

相关文章

  • 8.25 后记
    T1T2T3......
  • 剑指Offer 22. 链表中倒数第k个节点
    题目链接:剑指Offer22.链表中倒数第k个节点题目描述:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。解法思路:快慢指针:慢指针不动,快指针先走k步,然后快慢指针一起向后走,当快指针走到末尾时,慢指针所指的就是倒......
  • 「算法与数据结构」梳理6大排序算法 为了offer!
    6种排序如下......
  • 用单链表解决约瑟夫问题 C语言实现
    编号为1,2,3,…,n的n个人按顺序针方向围坐一张圆桌旁,每个人手中持有一个密码(正整数)。首先输入一个正整数作为报数上限值m,然后,从第一个人开始按顺序针方向自1开始顺序报数,报到m的人离开桌子,并将他手中的密码作为新的m值,从顺序针方向的下一个就坐在桌旁的人开始重新从1报数,如此下去,直......
  • 用单链表实现一元多项式相加 C++代码
     #include<iostream>usingnamespacestd;/*结点的定义*/typedefstructLNode{floatcoef;intexp;structLNode*next;}LNode;typedefLNode*Polynomial;/*多项式的初始化*/voidinitDuoX(Polynomial&Px){Px=newLNode;......
  • 双链表的定义、初始化、插入、删除,C++代码实现的算法
    #include<iostream>usingnamespacestd;/*双向链表类型定义*/typedefstructduNode{chardata;structduNode*prior;structduNode*next;}duNode;typedefduNode*duLinklist;//指针类型,故访问它的成员用“->”。/*初始化双向链表*/voidinitLinkl......
  • 「算法与数据结构」梳理6大排序算法 为了offer!
    6种排序如下......
  • 代码随想录第4天|链表复习
    做这种算法题真的要放平心态,你想不到思路的时候不要觉得自己太笨,其实想不到很正常,今天环形链表和相交链表这两道题,真的一点思路都没有,环形链表是最难理解的,在课堂上学的链表上的那点东西拿来做这种题确实还是差很多,我真的非常感谢这个做题的训练营,没有它我自己真的做不下去,现在跟......
  • 剑指 Offer 68 - II. 二叉树的最近公共祖先(简单)
    题目:classSolution{public:TreeNode*lowestCommonAncestor(TreeNode*root,TreeNode*p,TreeNode*q){if(root==p||root==q||root==nullptr)returnroot;//如果当前节点为空或者当前节点即为其中某个指定节点TreeNode*left=lowestCommo......
  • 剑指 Offer 55 - II. 平衡二叉树(简单)
    题目:classSolution{public:intgetHeight(TreeNode*cur){//递归函数返回的是以当前节点为根节点的高度。if(!cur)return0;//空节点的高度为0intleftHeight=getHeight(cur->left);//取得左节点的高度if(leftHeight=......