这个c++中链表头部插入节点的函数,有问题吗? 20

voidinput(Node*h)//从表头插入数据建立链表,h返回头指针{intx;cin>>x;while(x!=-1){Node*p=newNode;p->cont... void input(Node *h) //从表头插入数据建立链表,h返回头指针
{ int x;
cin >> x;
while (x != -1)
{ Node *p=new Node;
p->content = x;
p->next = h;
h = p;
cin >> x;
}
}
int main()
{ Node *head=NULL;
input( head);
......
}
上面input( head);应为input(&head);请问head是否指向新链表的头?
展开
 我来答
匿名用户
2016-06-04
展开全部
假设你的节点结构如下:struct{intsno;//节点序号Stringdata;//节点数据node*nextnode;//指向下个节点}ListNode;下面是实现代码:swap(ListNode*p,ListNode*q){ListNode*tnode=newListNode();//生成一个临时节点.tnode->sno=p->sno;//保存源节点的内容tnode->data=p->data;tnode->nextnode=p->nextnode;p->sno=q->sno;//把目标节点的内容复制到源节点上p->data=q->data;p->nextnode=q->nextnode;q->sno=tnode->sno;//把保存的临时节点重新存入目标节点实现交换q->data=tnode->data;q->nextnode=tnode->nextnode;}注:由于是单向链表,所以交换前必须从表头查起,查到源节点和目标节点两者各自的前一个节点,并修改这两个节点的指针批向新的位置,以上只是一个模型.具体的思路就是修改指针后再按新的指针链更正相应的序号.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式