對稱的二叉樹 java實現

2021-08-10 15:32:19 字數 709 閱讀 8883

題目描述:

請實現乙個函式,用來判斷一棵二叉樹是不是對稱的,如果一棵二叉樹和他的映象是一樣的,那麼它是對稱的;

解題思路:首先 理解映象的概念,進行就是一棵二叉樹左右節點反轉過後形成的二叉樹和原來的二叉樹是一樣的。這道題目中判斷條件是使用和元二叉樹的映象相同,那麼最low的方法是對原二叉樹進行重構,重構後的二叉樹和原二叉樹進行比較,相同即是對稱,不同就是不對稱嘍。那麼這種方法需要額外空間的,我覺得不是很好。下面來說說我的想法:其實判斷映象的過程可以簡化成這樣:看下面的圖,原來的二叉樹是左邊的圖,其映象二叉樹就是右邊的圖,可以看出就是對左右兩個字數進行的翻轉,那麼判斷一棵二叉樹是否對稱就變成了,將原二叉樹用兩個變數引用,比如說root1,root2,先判斷這兩棵樹的根節點是否相同,不相同肯定不是對稱的,相同的話繼續比較,root1的左子樹和root2的右子樹以及root1的右子樹和root2的左子樹,具體**如下:

對稱的二叉樹java實現

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。思路 建立二叉樹映象,與原二叉樹進行比較,相同返回true,否則,返回false。public class treenode public class solution boolean is...

二叉樹的映象 對稱的二叉樹 Java實現

題目描述 操作給定的二叉樹,將其變換為源二叉樹的映象。輸入描述 二叉樹的映象定義 原二叉樹 8 6 10 5 7 9 11 映象二叉樹 8 10 6 11 9 7 5思路分析 先前序遍歷這棵樹的每個結點,如果遍歷的節點有子節點,那麼就進行左右子節點的交換。遞迴實現 public void mirro...

對稱二叉樹c 對稱的二叉樹

很簡單,關鍵還是知道怎麼樣才能判斷乙個 二叉樹是否對稱,只要採用前序 中序 後序 層次遍歷等任何一種遍歷方法,分為先左後右和先 右後左兩種方法,只要兩次結果相等就說明這棵樹是一顆對稱二叉樹。迭代版本 class solution public bool issymmetric treenode ro...