給定一棵二叉樹,判斷它是否是自身的映象(即:是否對稱)
例如:下面這棵二叉樹是對稱的
1/ \
2 2
/ \ / \
3 4 4 3
下面這棵二叉樹不對稱。
1/ \
2 2
\ \
3 3
備註:希望你可以用遞迴和迭代兩種方法解決這個問題
二、示例
三、演算法:
思路:用高度大於2的二叉樹舉例來說吧,也就是上面第乙個例子,只要結點1的左孩子和結點2的右孩子相等,並且結點1的右孩子和結點2的左孩子相等,我們就認為是映象,前提是結點1和結點2兄弟結點;
遞迴實現如下:
1public
static
boolean
issymmetric(treenode root) 56
7//遞迴8
public
static
boolean
in(treenode l1, treenode l2)
}
非遞迴呼叫
//迭代public
static
boolean
issymm(treenode root)
return
true
; }
判斷二叉樹是否是對稱二叉樹
給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 遞迴實現 需要滿足兩個子樹 根節點值相同 根節點1的左子樹與根節點2右子樹相同 根節點1...
二叉樹是否對稱
題目 給定一棵二叉樹,判定它是否是映象對稱的。如下是一棵映象二叉樹。1 2 2 34 43我最開始的想法是這樣的,如下 對稱二叉樹 public boolean issymmetric treenode root treenode t1 root.left treenode t2 root.righ...
二叉樹應用 二叉樹映象(對稱)
題目 完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。如 分析 對於乙個二叉樹的映象過程,我們可以先前序遍歷這棵樹的每乙個節點,如果遍歷到的節點有子節點,就交換它的兩個子節點。當交換完所有的飛葉子節點之後,就得到了樹的映象。具體實現 struct treenode void mirrorrecur...