华为机试

华为机试
题目描述
输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。

链表结点定义如下:

struct ListNode

{

int m_nKey;

ListNode* m_pNext;

};

详细描述:

本题为考察链表的插入和删除知识。

链表的值不能重复

构造过程,例如

1 <- 2

3 <- 2

5 <- 1

4 <- 5

7 <- 2

最后的链表的顺序为 2 7 3 1 5 4

删除 结点 2

则结果为 7 3 1 5 4

#include <iostream>
using namespace std;

typedef struct ListNode
{
int m_nKey;
struct ListNode* m_pNext;
}ListNode;

//创建链表头结点
ListNode* creatList(int headNumber)
{
//ListNode* pHead = new ListNode[number];
ListNode* pHead = new ListNode;
pHead->m_nKey = headNumber;
pHead->m_pNext = NULL;
return pHead;
}

//插入元素
void insertList(ListNode* head, int data, int position)
{
ListNode* pCurrent = head;
while (pCurrent->m_nKey != position)
{
pCurrent = pCurrent->m_pNext;
}
ListNode* pTemp = new ListNode;
pTemp->m_nKey = data;
pTemp->m_pNext = pCurrent->m_pNext;
pCurrent->m_pNext = pTemp;
}

//删除元素//若删除后链表为空则返回空指针
ListNode* deleteList(ListNode* head, int data)
{
if (head->m_nKey == data && head->m_pNext == NULL)
{
return NULL;
}
if (head->m_nKey == data)
{
ListNode* pHead = head->m_pNext;
return pHead;
}
ListNode* pPre = head;
ListNode* pCurrent = pPre->m_pNext;
while (pPre->m_pNext != NULL)
{
if (pCurrent->m_nKey == data)
{
pPre->m_pNext = pCurrent->m_pNext;
}
pPre = pPre->m_pNext;
pCurrent = pCurrent->m_pNext;
}
return head;
}

//打印链表
void printList(ListNode* head)
{
ListNode* pTemp = head;
while (pTemp->m_pNext != NULL)
{
cout << pTemp->m_nKey << " ";
pTemp = pTemp->m_pNext;
}
cout << pTemp->m_nKey << " ";
}

int main()
{
int num; //链表节点数
while (cin >> num)
{
int headNumber = 0;
cin >> headNumber;
ListNode* pHead = creatList(headNumber);
for (int i = 0; i < num - 1; i++)
{
int data, position;
cin >> data >> position;
insertList(pHead, data, position);
}
//printList(pHead);
//cout << endl;
int deldata;
cin >> deldata;
ListNode* pHead2 = deleteList(pHead, deldata);
printList(pHead2);
cout << endl;
}
return 0;
}

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

华为机试

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 华为机试
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏