void showNode(Link head) { Link p = head->next; while (p!=nullptr) { cout << "新闻标题:" << p->data.name << "新闻号:" << p->data.num << " 新闻内容:" << p->data.n << endl; p = p->next; },为什么什么都不输入,都会输出“新闻标题”
时间: 2023-12-02 14:03:40 浏览: 31
这段代码中,输出“新闻标题”是因为在 cout 语句中直接输出了字符串 "新闻标题:",而不是从链表节点中取出标题信息输出。所以即使链表中没有任何节点,也会输出 "新闻标题:",只是后面不会跟具体的标题信息。同时,由于 while 循环的条件是 p 不为 nullptr,所以即使链表为空,循环也不会执行,只会输出一行空白。
相关问题
void showNode1(Link head) { Link p = head->next; bool flag=true; while (p&&flag) { cout << "新闻标题:" << p->data.name << "新闻号:" << p->data.num << " 新闻内容:" << p->data.n << endl; p = p->next; if (p == nullptr) { flag = false; } },这段代码在p==nullptr的if判定条件,即使p为空指针了但是这个if条件依旧没法触发,怎么办
在这段代码中,p已经是空指针时,if判定条件确实不会被触发,因此需要另外一种方式来结束循环。可以在while循环中加入一个额外的判定条件,以便在满足该条件时结束循环。例如,可以使用一个计数器来记录已经遍历的节点数,当计数器达到链表长度时,也就完成了遍历,可以结束循环。具体代码如下:
```
void showNode1(Link head) {
Link p = head->next;
bool flag = true;
int count = 0; // 计数器初始化为0
while (p && flag && count < 链表长度) { // 判定计数器是否小于链表长度
cout << "新闻标题:" << p->data.name << "新闻号:" << p->data.num << " 新闻内容:" << p->data.n << endl;
p = p->next;
count++; // 每遍历一个节点,计数器加1
}
}
```
这种方法可以保证遍历每个节点,并且在遍历完成后自动结束循环,不需要使用p==nullptr的判定条件。需要注意的是,需要将链表长度替换成实际的链表长度。
while (p != nullptr) { ListNode *q = p->next; while (q != nullptr && q->data == p->data) { p->next = q->next; delete q; q = p->next; }
) { if (p->val == q->val) { p->next = q->next; delete q; q = p->next; } else { q = q->next; } } p = p->next; } return head; }
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)