反转二叉树,将每个节点的左节点和右节点交换
可以使用递归方法,先将交换函数在左节点和右节点递归下去,然后再交换左右节点
C:
/** * 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 NULL; } struct TreeNode* leftNode = NULL; struct TreeNode* rightNode = NULL; if(root->left != NULL) { leftNode = invertTree(root->left); } if(root->right != NULL) { rightNode = invertTree(root->right); } root->left = rightNode; root->right = leftNode; }