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

合并两个排序的链表

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

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param pHead1 ListNode类 
     * @param pHead2 ListNode类 
     * @return ListNode类
     */
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
        // write code here
        if( pHead1 == nullptr || pHead2 == nullptr ){
            if( pHead1 == nullptr ) return pHead2;
            else return pHead1;
        }
        else{
            if(pHead1->val < pHead2->val){
                func( pHead1,pHead2 );
                return pHead1;
            }else{
                func( pHead2,pHead1 );
                return pHead2;
            }
        }

    }

    void func( ListNode * ptr1_,ListNode * ptr2_ ){
        if( ptr1_->next ==nullptr ){
            ptr1_->next = ptr2_;
        }else{
            if( ptr1_->next->val < ptr2_->val ){
                ptr1_ = ptr1_->next;
                func( ptr1_,ptr2_ );
            }else{
                ListNode * ptr3_ = ptr1_->next;
                ptr1_->next = ptr2_;
                func( ptr2_,ptr3_ );
            }
        }
    }
};

全部评论

相关推荐

04-02 16:49
门头沟学院 Java
_bloodstream_:我也面了科大讯飞,主管面的时候听说急招人优先考虑能尽快实习的,我说忙毕设,后面就一直没消息了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务