如何编写返回节点值与指定变量存储值匹配的charNode节点的函数
实现方案
你给出的函数默认参数仅支持新建一个Node字段等于传入值c的charNode节点,实现逻辑如下:
- 用
new在堆上申请charNode类型的内存空间,栈空间会在函数执行结束后自动回收,返回栈指针会导致野指针问题 - 对新节点的两个成员分别赋值:Node字段设为参数c,next指针初始化为空
- 返回新节点的指针
补全后的代码如下:
charNode* getCharNode(char c) { charNode* newNode = new charNode; newNode->Node = c; newNode->next = nullptr; // 低版本C++可替换为NULL return newNode; }
注意:通过
new申请的节点使用完毕后需要手动调用delete释放,避免产生内存泄漏。
如果你需要的是从已有的链表中查找值匹配的节点,原函数缺少链表头指针入参,调整后的实现如下:
// 新增链表头指针作为入参 charNode* getCharNode(char c, charNode* head) { charNode* current = head; while (current != nullptr) { if (current->Node == c) { return current; } current = current->next; } // 未找到匹配节点返回空指针 return nullptr; }
内容的提问来源于stack exchange,提问作者Hazuuc Nomi
相关产品推荐
相关产品推荐

