一开始不懂为什么定义的结构体里面又去定义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;
}
转载请注明原文地址: https://ju.6miu.com/read-16099.html