void mirror(binarytreenode *root)
{ if(root==null)
return;
if(root->left == null&& root->right == null)
return;
binarytreenode *temp = root->left;
root->left = root->right;
root->right = temp;
if(root->left)
mirror(root->left);
if(root->right)
mirror(root->right);
二叉樹的映象思想主要是先交換上層根節點的左右子樹節點指標,然後依次遞迴的交換左子樹和右子樹的根節點指著的值。
二叉樹面試題(二) 求一顆二叉樹的映象
一 二叉樹的映象就是乙個樹在鏡子裡的成像 好吧!初中的物理知識來了,哈哈,其實很簡單,採用遞迴的方法求二叉樹的映象 1 如果樹為空,直接返回null 2 如果樹不為空,求其左子樹和右子樹的映象,遞迴完成後,將左子樹的映象放在根結點的右邊,將右子樹的映象放在根結點的左邊 二 圖說 三 實現 inclu...
劍指Offer 面試題19 映象二叉樹
操作給定的二叉樹,將其變換為源二叉樹的映象。以題目中的兩棵樹為例 就是先序遍歷這棵樹,如果當前正在遍歷的節點有子結點 無論是左還是右 就交換兩個子節點,當交換完所有的非葉子結點的左右子結點的時候,就得到了樹的映象.具體過程如下所示 注意6和10交換之後,第三層結點的排列順序 遞迴實現 public ...
面試題17 二叉樹的映象
例如 下面兩棵樹互為映象 思路 先序遍歷樹的每個結點,若遍歷到的結點有子節點,則交換它的兩個結點。include stdafx.h include using namespace std struct binarytreenode 構造樹的映象 void mirror binarytreenode ...