演算法 將二叉樹轉為映象

2021-10-06 21:12:39 字數 1009 閱讀 6481

題目描述

操作給定的二叉樹,將其變換為源二叉樹的映象。

輸入描述:

二叉樹的映象定義:

源二叉樹

映象二叉樹

採用遞迴思想(套先序遍歷模板):

如果乙個節點不是葉節點,則將它的左右孩子互換;

接著將它的左右孩子都轉為映象;

直到該節點為空或者為葉節點為止。

例如:先訪問8,則將它的左右孩子互換,為:

再將8的左右孩子10,6進行映象操作,訪問10,交換其左右孩子:

訪問6,交換其左右孩子:

接下來訪問的11,9,7,5都為葉子節點,跳出遞迴,映象轉換結束。

public class solution 

if(root.left==null && root.right==null)

//將節點的左右孩子交換

treenode node = root.left;

root.left = root.right;

root.right = node;

//遞迴

mirror(root.left);

mirror(root.right);}}

映象二叉樹

映象二叉樹與二叉樹的區別是左右孩子對於根節點的相對大小剛好相反不用建立映象樹,通過對原樹的映象便歷,即可得到所需的東西。後序 樹 lr根,映象 rl根。如果創立映象二叉樹,insert 改一下即可,這樣可以把preordermirror 等去掉。對於遍歷後的排序放到vector陣列裡便於比較,而且進...

映象二叉樹

題目描述 操作給定的二叉樹,將其變換為源二叉樹的映象。思路 1 獲取源二叉樹的映象,將源二叉樹的左右子樹交換即可 2 主要步驟 若二叉樹為空,直接返回 若二叉樹不為空,交換其左右子樹 遞迴的將二叉樹的其他結點進行交換 public class treenode public class soluti...

二叉樹12 二叉樹的映象

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