二叉樹是否是映象對稱

2022-03-12 15:18:09 字數 726 閱讀 5090

給定一棵二叉樹,判斷它是否是自身的映象(即:是否對稱)

例如:下面這棵二叉樹是對稱的

1/   \

2       2

/ \      / \

3   4    4   3

下面這棵二叉樹不對稱。

1/ \

2    2

\    \

3    3

備註:希望你可以用遞迴和迭代兩種方法解決這個問題

二、示例

三、演算法:

思路:用高度大於2的二叉樹舉例來說吧,也就是上面第乙個例子,只要結點1的左孩子和結點2的右孩子相等,並且結點1的右孩子和結點2的左孩子相等,我們就認為是映象,前提是結點1和結點2兄弟結點;

遞迴實現如下:

1

public

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...