合并单链表

作者: 飞白非白 | 来源:发表于2018-12-04 23:35 被阅读9次
  • 合并两个有序链表非递归实现
/**
 * Definition for singly-linked list.
 * struct ListNode 
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
 
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        ListNode* header = new ListNode(-1);
        ListNode* cur = header;
        while(l1 || l2)
        {
            int n = 0;
            if(l1 == NULL || (l1 && l2 && l1->val > l2->val))
            {
                n = l2->val;
                l2 = l2->next;
            }
            else if(l2 == NULL || (l1 && l2 && l1->val <= l2->val))
            {
                n = l1->val;
                l1 = l1->next;
            }

            cur->next = new ListNode(n);
            cur = cur->next;
        }

        ListNode *ans = header->next;
        delete header;
        return ans;
    }
};
  • 合并两个有序链表递归实现
Node* MergeListR(Node* Head1,Node* Head2)
{
    if(NULL == Head1 || NULL == Head2){
        if(NULL == Head1)
            return Head2;

        return Head1;
    }

    Node* newHead = NULL;
    //较小的作为新链表的头
    if(Head1->_data < Head2->_data){
        newHead = Head1;
        newHead->_next = MergeList(newHead->_next,Head2);
    }else{
        newHead = Head2;
        newHead->_next = MergeList(Head1,newHead->_next);
    }

    return newHead;
}

相关文章

  • 2022-02-23 链表专栏

    链表基础 类别 1、合并两个有序链表2、合并 k 个有序链表3、寻找单链表的倒数第 k 个节点4、寻找单链表的中点...

  • 递归方法,多个单增链表合并为一个单增链表

    递归方法,多个单增链表合并为一个单增链表

  • 44_递归的思想与应用(中)

    关键词:单链表的转置、单向排序链表的合并、汉诺塔问题、全排列问题 0. 单链表的转置 1. 单向排序链表的合并 2...

  • leetcode 单链表的各种算法

    1 递归实现:合并两个有序的单链表 2 递归实现:单链表逆序存入vector 3 循环实现:快慢指针找到单链表中间...

  • 合并单链表

    合并两个有序链表非递归实现 合并两个有序链表递归实现

  • 两个有序单链表的合并

    Java实现两个有序单链表的合并 两个有序链表合并时,首先新建一个链表,存储最终的结果。 分情况讨论合并的方式:1...

  • 数据结构(5)-线性表面试题

    准备工作 定义单链表结构,初始化单链表,通过数组生成单链表,打印链表元素。 正题 将2个递增的有序链表合并为⼀个有...

  • 链表

    1 合并两个链表 2 链表判环 并返回入环节点的值 3 两个无环单链表是否相交 4 合并两个有序链表 5 链表排序

  • 2018-07-26

    合并有顺序的数组 打印两个有序链表的公共部分 在单链表和双链表中删除倒数第k个节点 单链表 双链表 删除链表的中间...

  • 合并两个有序单链表

    一、问题描述 给定两个单链表,都是递增有序的,将它们合并,使合并后的链表仍然有序。 二、解题思路 这种链表的问题我...

网友评论

    本文标题:合并单链表

    本文链接:https://www.haomeiwen.com/subject/fkubcqtx.html