本文共 1406 字,大约阅读时间需要 4 分钟。
输入:
5 //长度 2 //第一个节点 3 2 //3插入第二个节点 4 3 //。。。 5 2 //。。。 1 4 //。。。 3 //删除第三个节点 输出: 2 5 1 4 有些地方是为了凑答案,链表的头部插入和删除需要注意。void insertLinkList(ListNode* &pListHead,int data,int position){ ListNode *p = pListHead; int index = 2; if (position==1) { ListNode *q = new ListNode; q->m_nKey = data; q->m_pNext = pListHead; pListHead = q; } else{ while (index++ < position) { p = p->m_pNext; } ListNode *q = new ListNode; q->m_nKey = data; q->m_pNext = p->m_pNext; p->m_pNext = q; }}void deleteNode(ListNode* &pListHead, int position){ ListNode *p = pListHead; int index = 1; while (index++ < position-1) { p = p->m_pNext; } p->m_pNext = (p->m_pNext)->m_pNext;}int main(){ //按规则插入链表 int length; cin >> length; int data; int position; ListNode* pListHead = NULL; ListNode* p = new ListNode; cin >> data; p->m_nKey = data; p->m_pNext = NULL; pListHead = p; int index = 1; while (index++> data; cin >> position; insertLinkList(pListHead,data,position); } cin >> position; deleteNode(pListHead, position); p = pListHead; while (p) { int data = p->m_nKey; cout << data ; if (p->m_pNext) { cout << " "; } p = p->m_pNext; } cout << endl; return 0;}
转载地址:http://xinws.baihongyu.com/