在单链表的头部或者尾部插入节点

2019-12-15  本文已影响0人  残剑天下论
#include <iostream>
using namespace std;
struct ListNode {
    int val;
    ListNode *next;
    ListNode(int x): val(x), next(NULL){}
};

void My_Printf(ListNode* L)
{
    cout << "List is: ";
    ListNode* cur = L;
    while (cur)
    {
        cout << cur->val << "->";
        cur = cur->next;
    }
    cout << endl;
}

ListNode* InsertNodeInHead(ListNode* head, int item)
{
    ListNode* node = new ListNode(item);
    node->next = head;
    return node;
}

ListNode* InsertNodeInTail(ListNode* head, int item)
{
    ListNode* node = new ListNode(item);
    ListNode* cur = head;
    while (cur->next != NULL)
    {
        cur = cur->next;
    }
    node->next = cur->next;
    cur->next = node;
    return head;
}

int main()
{
    ListNode* n1 = new ListNode(5);
    ListNode* n2 = new ListNode(15);
    ListNode* n3 = new ListNode(20);
    ListNode* n4 = new ListNode(35);
    ListNode* n5 = new ListNode(45);
    ListNode* n6 = new ListNode(50);
    
    ListNode* m1 = new ListNode(15);
    ListNode* m2 = new ListNode(35);
    ListNode* m3 = new ListNode(50);
    ListNode* m4 = new ListNode(55);
    
    n1->next = n2;
    n2->next = n3;
    n3->next = n4;
    n4->next = n5;
    n5->next = n6;
    
    m1->next = m2;
    m2->next = m3;
    m3->next = m4;
    
    My_Printf(n1);
    My_Printf(m1);

    ListNode* nodeHead = InsertNodeInHead(n1, 100);
    ListNode* nodeTail = InsertNodeInTail(n1, 100);
    My_Printf(nodeHead);
    My_Printf(nodeTail);
}
上一篇 下一篇

猜你喜欢

热点阅读