zoukankan      html  css  js  c++  java
  • C++/C面试题(2)

    (1)单向链表操作

         1)在链表尾部插入一个节点

    void addNewNodeTail(ListNode **HeadNode, int value)//在链表尾部插入一个节点
    {
    ListNode* newNode = new ListNode();
    newNode->Value = value;
    newNode->next = nullptr;
    if (*HeadNode == nullptr)//如果这个链表是空链表
    *HeadNode = newNode;
    else
    {
    ListNode*pNode = *HeadNode;
    while (pNode->next != nullptr)//找到链表的最后一个节点
    pNode = pNode->next;
    pNode->next = newNode;//在链表尾部插入节点
    }
    }

    //删除一个节点

    void deleteNode(ListNode** HeadNode, int value)
    {
    if (HeadNode == nullptr || *HeadNode == nullptr)//首先考虑不是空链表
    return;
    ListNode* ptoDelectNode = nullptr;//指针指向要删除的节点
    if ((*HeadNode)->Value == value)//如果头节点是要删除的节点
    {
    ptoDelectNode = *HeadNode;
    *HeadNode = (*HeadNode)->next;
    }
    else
    {
    ListNode* pNode = *HeadNode;
    while ((pNode->next->Value != value)&&(pNode->next!=nullptr))
    pNode = pNode->next;
    if ((pNode->next->Value == value) && (pNode->next != nullptr))
    {
    ptoDelectNode = pNode->next;
    pNode->next = pNode->next->next;
    }
    if (ptoDelectNode != nullptr)
    {
    delete ptoDelectNode;
    ptoDelectNode = nullptr;
    }
    else
    {
    printf("there is no matching value in this list ");
    }
    }
    }

    //在第num个位置插入一个节点

    void insertNode(ListNode** HeadNode, int value,int num)//在链表中第num个节点之前插入一个节点
    {
    if (value == NULL)
    return;
    ListNode* newInsertNode = new ListNode();
    newInsertNode->Value = value;
    newInsertNode->next = nullptr;
    ListNode* pNode = *HeadNode;
    if (*HeadNode == nullptr||num==0)
    *HeadNode = newInsertNode;
    else
    {
    for (int i = 0;i < num-1;i++)//找到位置
    pNode = pNode->next;
    pNode->next = newInsertNode;//插入
    newInsertNode->next = pNode->next->next;
    }
    }

  • 相关阅读:
    OCP-1Z0-053-V12.02-285题
    OCP-1Z0-053-V12.02-281题
    今天博客抽风了,我也抽风了
    OCP-1Z0-053-V12.02-278题
    OCP-1Z0-053-V12.02-271题
    OCP-1Z0-053-V12.02-269题
    OCP-1Z0-053-V12.02-256题
    OCP-1Z0-053-V12.02-249题
    OCP-1Z0-053-V12.02-248题
    OCP-1Z0-053-V12.02-244题
  • 原文地址:https://www.cnblogs.com/hai5111/p/7616347.html
Copyright © 2011-2022 走看看