完成乙個函式,輸入乙個二叉樹,輸出這個二叉樹的映象。二叉樹的節點如下定義:
struct binarytreenode
演算法描述
前序遍歷樹的節點,如果遍歷到的節點有子節點,則交換它的兩個子節點。當交換玩所有非葉子節點的左右子節點後,就得到了樹的映象。交換原理同交換兩個普通變數的值,只需要利用乙個輔助變數即可。
**
void mirrorrecursively(binarytreenode* pnode)
if (pnode->m_pleft==
null
&&pnode->m_pright==
null)
//交換根節點的兩個字子節點
binarytreenode* ptemp = pnode->m_pleft;
pnode->m_pleft = pnode->m_pright;
pnode->m_pright = ptemp;
//遞迴交換其他節點的子節點
if (pnode->m_pleft)
if (pnode->m_pright)
}
c 實現 二叉樹的映象
操作給定的二叉樹,將其變換為源二叉樹的映象。題目抽象 給定一顆二叉樹,將二叉樹的左右孩子進行翻轉,左右孩子的子樹做相同的操作。方法一 遞迴 dfs class solution void mirror treenode proot 時間複雜度 o n n為樹節點的個數。每個節點只用遍歷一次,所以為o...
操作給定的二叉樹,將其變換為源二叉樹的映象。
操作給定的二叉樹,將其變換為源二叉樹的映象。輸入描述 二叉樹的映象定義 源二叉樹 8 6 10 5 7 9 11 映象二叉樹 8 10 6 11 9 7 5public class solution if root.left null root.right null 交換當前結點的左右子樹 tree...
映象二叉樹
映象二叉樹與二叉樹的區別是左右孩子對於根節點的相對大小剛好相反不用建立映象樹,通過對原樹的映象便歷,即可得到所需的東西。後序 樹 lr根,映象 rl根。如果創立映象二叉樹,insert 改一下即可,這樣可以把preordermirror 等去掉。對於遍歷後的排序放到vector陣列裡便於比較,而且進...