二叉树的中序遍历

每日一题

二叉树的中序遍历. - 力扣(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中,字符串的内存管理通常是手动的,使用 mallocfree 进行动态分配和释放。

  • 不可扩展: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:仅个人观点,后续可能会进行更改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值