为什么那个合并链表功能不好用呀,使用之后不能输入应该如何修改


#include<iostream>
using namespace std;

class LinkedList {
public:

    typedef struct My_Node {
        int val;
        struct My_Node *next = nullptr;
    }Node, *Node_Pointer;

    LinkedList() {
        MyHead.val = 0;
        _size = 0;
    }

    void InsertList(int num) {
        Node_Pointer cur = &MyHead;
        while(cur->next) {
            if(cur->next->val > num) {
                break;
            }
            cur = cur->next;
        }
        Node_Pointer NewNode = new Node;
        NewNode->val = num;
        NewNode->next = cur->next;
        cur->next = NewNode;
        _size++;
    }

    void Reversal() {
        Node_Pointer pre = nullptr;
        Node_Pointer cur = MyHead.next;
        Node_Pointer temp;

        while(cur) {
            temp = cur->next;
            cur->next = pre;
            pre = cur;
            cur = temp;
        }

        MyHead.next = pre;
    }

    Node GetNode() {
        return MyHead;
    }

    void Print_List() {
        Node_Pointer cur = MyHead.next;
        while(cur) {
            cout << cur->val <<" ";
            cur = cur->next;
        }
        cout << endl << endl;
    }

    void CombineList(Node _list) {
        Node_Pointer p1 = this->MyHead.next;
        Node_Pointer p2 = _list.next;
        Node_Pointer cur = nullptr;
        while(p1 != nullptr || p2 != nullptr) {
            if(p1->val < p2->val || p2) {
                this->MyHead.next = p1;
                p1->next = cur;
                cur = p1;
                p1 = p1->next;
            } else {
                this->MyHead.next = p2;
                p2->next = cur;
                cur = p2;
                p2 = p2->next;
            }
        }
        cur->next = nullptr;
    }

private:
    int _size;
    Node MyHead;
};

void _input(LinkedList &My_List) {
    int Count;
    cout << "输入插入节点的个数:" << endl;
    cin >> Count;

    for(int i = 0; i < Count; i++) {
        cout <<"输入插入节点的数值:" << endl;
        int num;
        cin >> num;
        My_List.InsertList(num);
        My_List.Print_List();
    }
}

int main() {
    LinkedList List1 ,List2;

    _input(List1);
    cout << endl << endl;
    _input(List2);

    cout << "反转后的链表:" << endl;
    List1.Reversal();
    List2.Reversal();
    List1.Print_List();
    List2.Print_List();

    cout << "合并后的链表:" << endl;
    List1.CombineList(List2.GetNode());
    List1.Print_List();
    return 0;

}****

【相关推荐】




如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^