实习冲刺Day11
算法题
二叉树的中序遍历
94. 二叉树的中序遍历 - 力扣(LeetCode)
递归写法
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/class Solution {
public:void fun(TreeNode*root,vector<int>&res){if(!root)return;//根节点为空返回fun(root->left,res);//先左res.push_back(root->val);fun(root->right,res);//再→}vector<int> inorderTraversal(TreeNode* root) {//中序遍历左根右的方式vector<int> res;//空数组用来返回stack<TreeNode*> stk;//用栈来承接fun(root,res);return res;}
};
二叉树的先序遍历根左右
二叉树的后序遍历左右根
基础知识
C、C++中字符串的存储方式有何不同?
c++中字符串有两种存储方式,一种是存储在char[]数组中,一种是存储在c++封装的string类中
在C中,并没有字符串这个数据类型,而是使用字符数组char[]来保存字符串
在C中也可以使用字符指针来访问一个字符串,通过字符指针指向存放字符串数组的首元素地址来进行访问.
如何在C下比较两个字符串是否相同?
#include<stdio.h>
#include<stdlib.h>
int m_cmp(char* str1, char* str2) {if (str1 == NULL || str2 == NULL) {return 2;}while (*str1 == *str2) {if (*str1 == '\0') {return 0;}str1++;str2++;}return (*str1 > *str2) ? 1 : -1;}
int main() {char* str1 = "hello", * str2 = "hi";m_cmp(str1, str2);return 0;
}