1. 程式人生 > 實用技巧 >劍指offer27.二叉樹映象

劍指offer27.二叉樹映象

方法:遞迴:
  根據二叉樹映象的定義,考慮提櫃遍歷二叉樹,交換每個節點,即可生成二叉樹的映象。
遞迴解析:
  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)); 14
Node->val=root->val; 15 Node->left=mirrorTree(root->right); 16 Node->right=mirrorTree(root->left); 17 return Node; 18 }