题目描述node
翻转一棵二叉树。网络
示例ide
输入:spa
4 / \ 2 7 / \ / \ 1 3 6 9
输出:code
4 / \ 7 2 / \ / \ 9 6 3 1
题目要求blog
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * struct TreeNode *left; 6 * struct TreeNode *right; 7 * }; 8 */ 9 10 struct TreeNode* invertTree(struct TreeNode* root){ 11 12 }
题解递归
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * struct TreeNode *left; 6 * struct TreeNode *right; 7 * }; 8 */ 9 10 struct TreeNode* invertTree(struct TreeNode* root){ 11 if(root==NULL)return root; 12 struct TreeNode *r=(struct TreeNode*)malloc(sizeof(struct TreeNode)); 13 r->val=root->val; 14 if(root->left!=NULL)r->right=invertTree(root->left); 15 else r->right=NULL; 16 if(root->right!=NULL)r->left=invertTree(root->right); 17 else r->left=NULL; 18 return r; 19 }
递归leetcode
递归须要明确终止条件、返回值、递归内容,二叉树问题还需注意根节点为空的特殊状况。get
题目来源:力扣(LeetCode)
连接:https://leetcode-cn.com/problems/invert-binary-tree/
著做权归领扣网络全部。商业转载请联系官方受权,非商业转载请注明出处。it