写的这个代码不知道错哪里了😭

img


错哪里了,求解
将第二个字符串连接到第一个字符串,不知道写的这个代码错在哪里了

第一个while那行,结尾多了一个分号。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7604177
  • 你也可以参考下这篇文章:判断给定序列形成的完全二叉树是不是一颗二叉排序树
  • 除此之外, 这篇博客: 对称二叉树 给定一个二叉树,检查它是否是镜像对称的(递归和迭代两种解法)。中的 完整测试代码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #include<iostream>
    #include<queue>
    using namespace std;
    
    struct TreeNode {
    	int val;
    	TreeNode* left;
    	TreeNode* right;
    	TreeNode(int x) : val(x), left(NULL), right(NULL) {}
    };
    
    bool isSymmetric(TreeNode* root) {
    	vector<vector<int>> ans;
    
    	queue<TreeNode*> q;
    
    	TreeNode* p = root;
    	if (p == NULL)
    		return true;
    	else
    		q.push(p);
    
    	while (!q.empty())
    	{
    		vector<int> tmp;
    		int size = q.size();
    		for (int i = 0; i < size; i++)
    		{
    			p = q.front();
    			q.pop();
    			if (p != NULL)
    				tmp.push_back(p->val);
    			else
    				tmp.push_back(-1);
    			if (p != NULL)
    			{
    				if (p->left != NULL)
    					q.push(p->left);
    				else
    					q.push(NULL);
    				if (p->right != NULL)
    					q.push(p->right);
    				else
    					q.push(NULL);
    			}
    			
    		}
    		ans.push_back(tmp);
    	}
    
    	for (int i = 0; i < ans.size(); i++)
    	{
    		for (int j = 0; j < ans[i].size() / 2; j++)
    		{
    			if (ans[i][j] != ans[i][ans[i].size() - j-1])
    				return false;
    		}
    	}
    	return true;
    }
    
    int main()
    {
    	TreeNode t1(1);
    	TreeNode t2(2);
    	TreeNode t3(2);
    	TreeNode t4(3);
    	TreeNode t5(3);
    	t1.left = &t2;
    	t1.right = &t3;
    	t2.right = &t5;
    	t3.right = &t4;
    	TreeNode* t = &t1;
    	cout << isSymmetric(t);
    	return 0;
    }
    

    用的是测试上面给出的第二个案例:
    在这里插入图片描述
    测试结果:
    在这里插入图片描述
    最后代码也能通过LeetCode的oj
    LeetCode通过代码:

    class Solution {
    public:
        bool isSymmetric(TreeNode* root) {
    	vector<vector<int>> ans;
    
    	queue<TreeNode*> q;
    
    	TreeNode* p = root;
    	if (p == NULL)
    		return true;
    	else
    		q.push(p);
    
    	while (!q.empty())
    	{
    		vector<int> tmp;
    		int size = q.size();
    		for (int i = 0; i < size; i++)
    		{
    			p = q.front();
    			q.pop();
    			if (p != NULL)
    				tmp.push_back(p->val);
    			else
    				tmp.push_back(-1);
    			if (p != NULL)
    			{
    				if (p->left != NULL)
    					q.push(p->left);
    				else
    					q.push(NULL);
    				if (p->right != NULL)
    					q.push(p->right);
    				else
    					q.push(NULL);
    			}
    			
    		}
    		ans.push_back(tmp);
    	}
    
    	for (int i = 0; i < ans.size(); i++)
    	{
    		for (int j = 0; j < ans[i].size() / 2; j++)
    		{
    			if (ans[i][j] != ans[i][ans[i].size() - j-1])
    				return false;
    		}
    	}
    	return true;
    }
    };
    
  • 您还可以看一下 纪佳琪老师的机器学习之聚类、主成分分析理论与代码实践课程中的 协方差矩阵的特征值分解算法代码实现小节, 巩固相关知识点