一开始不懂为什么定义的结构体里面又去定义left和right结构体
柏宁说这是树结构的定义方法,val存储节点的值,像链表一样,左边指针的指向左孩子,右边的指针指向右孩子
递归调用这里我觉得挺好理解的
就是根节点在中间,利用temp将左右指针调换一个位置
然后左子树重复这个操作
右子树也是
最后返回!
今天好顺利,两道题代码都很短很快AC
我和柏宁比赛做leetcode题 他做了40多道了,我卡住做不出来就不做了
还好师父说你不会就问他啊 在柏宁的帮助下 我也可以开始刷题的脚步了
Invert a binary tree.4 / \ 2 7 / \ / \ 1 3 6 9
to
4 / \ 7 2 / \ / \ 9 6 3 1
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ struct TreeNode* invertTree(struct TreeNode* root) { if(root==NULL){ return root; } struct TreeNode *temp=root->left; root->left = root->right; root->right =temp; invertTree(root->left); invertTree(root->right); return root; }