c++指针为什么((*root).(left)).val)这种写法vs2022不行 root->left->val或(((( * root).left)).val)就可以
这个提姆https://leetcode.cn/problems/root-equals-sum-of-children/
第一种写法会报错↓
后来发现这样写可以 原来不能带*吗 我勒个去↓
访问成员指针的地址就可以↓
所以为啥不能访问成员*left 却可以访问 left
#include<iostream>
using namespace std;
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) {}
}t1(6),t2(4),t3(10,&t1,&t2);
class Solution {
public:
bool checkTree(TreeNode* root)
{
if (( * root).val == ((*(( * root).left)).val) + ((*((*root).right)).val))return 1;
else return 0;
}
}a;
int main()
{
cout << a.checkTree(&t3);
}