劍指offer27.二叉樹映象
阿新 • • 發佈:2020-07-12
方法:遞迴:
根據二叉樹映象的定義,考慮提櫃遍歷二叉樹,交換每個節點,即可生成二叉樹的映象。
遞迴解析:
1、終止條件:當節點root為空時(即越過葉節點)則返回null:
2、遞推工作:
1.初始化節點node,用於儲存映象的二叉樹的節點
2.開啟遞迴node->left=mirrorTree(root->right) ,將返回值作為映象二叉樹的左節點
3.開啟遞迴node->right=mirrorTree(root->left),將返回值作為映象二叉樹的右節點。
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 11 struct TreeNode* mirrorTree(struct TreeNode* root){ 12 if(root==0) return NULL; 13 struct TreeNode* Node=(struct TreeNode*)malloc(sizeof(struct TreeNode)); 14Node->val=root->val; 15 Node->left=mirrorTree(root->right); 16 Node->right=mirrorTree(root->left); 17 return Node; 18 }