Merge Two Sorted Lists

来源:互联网 发布:mysql函数与存储过程 编辑:程序博客网 时间:2024/05/16 17:55

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

思路:向一个已经排序好的链表插入某个节点,该链表依旧保持排序好的状态.

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode *insertNode(ListNode *head,ListNode *p){        if(!head) return p;        if (head->val>p->val) {            p->next = head;            head = p;        } else {            ListNode *temp = head;            while (temp->next && temp->next->val<=p->val) {                temp = temp->next;            }            p->next = temp->next;            temp->next = p;        }        return head;    }    ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {        while (l2) {            ListNode *p =l2;            l2 = l2->next;            p->next = NULL;            l1 = insertNode(l1,p);        }        return l1;    }};




0 0
原创粉丝点击