我們先看一道題
題目描述
操作給定的二叉樹,將其變換為源二叉樹的映象。
輸入描述:
二叉樹的映象定義:源二叉樹
8/ \
6 10
/ \ / \
5 7 9 11
映象二叉樹
8/ \
10 6
/ \ / \
11 9 7 5
拿到這道題首先肯定想的就是把8的左右子樹變換一下位置就可以了於是開始寫**
public
static
void
mirror
(treenode root)
這麼寫看上去毫無問題,但是檢測結果我們回發現,他只交換了6和10子樹沒有跟著交換,結果還是發現自己年輕了,發現需要根據遞迴去交換於是完整**來了:
/**
* @description:
* @classname algorithm
* @author: 王瑞文
* @date: 2021/1/11 21:34
*/public
class
test02
public
static
void
tranform
(treenode root)
}}
當然 這是一道非常簡單的演算法題,小夥伴如果有更好的方法歡迎和我交流 映象二叉樹
映象二叉樹與二叉樹的區別是左右孩子對於根節點的相對大小剛好相反不用建立映象樹,通過對原樹的映象便歷,即可得到所需的東西。後序 樹 lr根,映象 rl根。如果創立映象二叉樹,insert 改一下即可,這樣可以把preordermirror 等去掉。對於遍歷後的排序放到vector陣列裡便於比較,而且進...
映象二叉樹
題目描述 操作給定的二叉樹,將其變換為源二叉樹的映象。思路 1 獲取源二叉樹的映象,將源二叉樹的左右子樹交換即可 2 主要步驟 若二叉樹為空,直接返回 若二叉樹不為空,交換其左右子樹 遞迴的將二叉樹的其他結點進行交換 public class treenode public class soluti...
二叉樹12 二叉樹的映象
題目 操作給定的二叉樹,將其變換為源二叉樹的映象。輸入描述 思路 首先要理解業務邏輯,何為映象?所謂映象就是對於任何乙個結點,將其左右子樹進行交換即可。對於一棵以root為根結點的二叉樹,要將其映象,首先將其左右子樹 root.left為根的子樹 和 root.right為根的子樹 進行映象,然後將...