每日一题
二叉树的中序遍历. - 力扣(LeetCode)

class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int> v;//返回数组
stack<TreeNode*> stk;//存储节点
while(root != nullptr||!stk.empty()){
while(root!=nullptr){//没走到左子树的最左边,就把左子树的左侧节点加入栈中
stk.push(root);
root=root->left;
}
root=stk.top();
stk.pop();
v.push_back(root->val);//打印节点
root=root->right;//看右边有没有节点
}
return v;
}
};
八股
C、C++中字符串的存储方式有何不同?
C语言中的字符串
-
字符数组:C语言中的字符串是以字符数组的形式存储的。字符串以
'\0'(空字符)结尾,标志字符串的结束。 -
手动管理内存:在C中,字符串的内存管理通常是手动的,使用
malloc和free进行动态分配和释放。 -
不可扩展:C语言中的字符数组大小在声明时固定,不能动态扩展。
C++中的字符串
std::string类:C++引入了std::string类,这是一种更高级的字符串类型,提供了许多方便的功能,如自动管理内存和动态扩展。- 内存管理:
std::string自动管理内存,开发者不需要手动分配或释放内存。 - 丰富的操作:
std::string提供了许多内置的方法,例如连接、查找、替换等,使用起来更方便。 - 兼容性:C++中的
std::string可以与C风格字符串相互转换,使用c_str()方法可以获取C风格字符串。
如何在C下比较两个字符串是否相同?
在C语言中,可以使用标准库函数 strcmp 来比较两个字符串是否相同。这个函数的原型在 <string.h> 头文件中定义。
strcmp 返回 0 表示两个字符串相同;如果返回值小于 0,表示第一个字符串小于第二个字符串;如果返回值大于 0,表示第一个字符串大于第二个字符串。
ps:仅个人观点,后续可能会进行更改
1137

被折叠的 条评论
为什么被折叠?



