标题:在函数中改变指针的问题。
取消只看楼主
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
已结贴  问题点数:20 回复次数:1 
在函数中改变指针的问题。
程序代码:
#include <iostream>
#include <queue>
using namespace std;

typedef struct ListNode
{
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
}ListNode;

ListNode* f(ListNode *h2)
{
    ListNode *h3=h2,*res=h2;
   queue<ListNode *> q;
   while(h2)
   {
       q.push(h2);
       h2=h2->next;
   }

   while(!q.empty())
   {
       ListNode *t=q.front();
       if(t->val==4)//当值为4时改变链表的结构,不把值为四的结点接入到链表中
        {
            q.pop();
            continue;
        }
        h3=t;
        h3=h3->next;
        q.pop();
   }
    return res;//这里不应该是返回一个新的不含有四结点的链表吗?
}
int main()
{
    ListNode *head=new ListNode(1);
    ListNode *h=head,*h1=head;
    h->next=new ListNode(2);
    h=h->next;
    h->next=new ListNode(3);
    h=h->next;
    h->next=new ListNode(4);
    h=h->next;
    h->next=new ListNode(5);

   ListNode *t=f(head);
    while(t)
    {
        cout<<t->val<<endl;
        t=t->next;
    }
    return 0;
}
搜索更多相关主题的帖子: 函数 改变 next head new 
2019-05-05 19:20
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
得分:0 
回复 3楼 word123
好的谢谢
2019-05-06 09:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-494563-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015725 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved