❗️LeetCode_226_翻转二叉树
LeetCode_226_翻转二叉树
1234567891011121314151617181920212223
请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4 / \ 2 7 / \ / \1 3 6 9镜像输出: 4 / \ 7 2 / \ / \9 6 3 1示例:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]限制:0 <= 节点个数 <= 1000
1234567891011121314151617181920212223242526272829303132333435
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* mirrorTree(TreeNode* root) { if (root == NULL) return {}; if (root->left == NULL && root->right == NULL) return root; //先前序遍历这棵树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点 //当交换完所有非叶节点的左、右子节点之后,就得到了树的镜像 if (root->left != NULL) { mirrorTree(root->left); } if (root->right != NULL) { mirrorTree(root->right); } TreeNode* temp = root->left; root->left = root->right; root->right = temp; return root; }};