二叉樹經典題系列 二叉樹的映象

2021-08-01 13:33:12 字數 813 閱讀 9406

二叉樹的映象:將乙個二叉樹的左右子樹,調換位置。即下圖的形式:

遞迴的思想是:

從根節點的左右子樹進行交換,然後以根節點的左子樹為根節點,而後以根節點的右結點為根節點,進行左右子樹交換。遇到空節點或葉節點直接返回。下面求二叉樹映象的函式**實現:

templatevoid mirrotree(treenode* root)

mirrotree(root->_left);

mirrotree(root->_right);

}

非遞迴實現思想:利用stack棧的filo,即先進後出原則,將根節點先行壓入棧中,然後進入棧同時取棧頂結點並pop棧,然後交換左右子樹的結點,若根節點的左右子樹不為空,即壓入棧中,直到棧為空則停止。下面是非遞迴實現**:

templatevoid mirrotree_nor(treenode* root)

if (top->_left != null)

s.push(top->_left);

if (top->_right != null)

s.push(top->_right);

}}

二叉樹 27題 二叉樹的映象

請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。例如輸入 4 2 7 1 3 6 9 映象輸出 4 7 2 9 6 3 1 示例1 輸入 root 4,2,7,1,3,6,9 輸出 4,7,2,9,6,3,1 限制 0 節點個數 1000根據二叉樹映象的定義,考慮遞迴遍歷 dfs 二叉樹,交換每...

二叉樹12 二叉樹的映象

題目 操作給定的二叉樹,將其變換為源二叉樹的映象。輸入描述 思路 首先要理解業務邏輯,何為映象?所謂映象就是對於任何乙個結點,將其左右子樹進行交換即可。對於一棵以root為根結點的二叉樹,要將其映象,首先將其左右子樹 root.left為根的子樹 和 root.right為根的子樹 進行映象,然後將...

二叉樹的深度,平衡二叉樹,二叉樹的映象

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。實現,遞迴遍歷二叉樹的左子樹,右子樹,取子樹深度大值,再加上子樹與根節點的距離1,即為這顆二叉樹的深度 classsolution 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。平...