劍指offer 對稱的二叉樹

2022-11-24 15:11:29 字數 600 閱讀 9910

請實現一個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。

思路:如果這顆二叉樹是空的,那麼返回true,否則判斷此二叉樹的左右子樹是不是相同的。

遞迴**如下:

1/*2

struct treenode 9};

10*/

11class

solution

17return issame(proot->left, proot->right);18}

1920

private:21

bool issame(treenode *left, treenode *right)

26//

如果左右樹都不為空,那麼要滿足左樹的左子樹與右樹的右子樹相同,

27//

左樹的右子樹與右樹的左子樹相同,並且根節點的值要相同 (先判斷根節點值是否相同最好,因為&&的存在)

28if (left &&right)

31//

其他情況返回false;

32return

false;33

}34 };

非遞迴**:

劍指offer 二叉樹的映象

操作給定的二叉樹,將其變換為源二叉樹的映象。二叉樹的映象定義 源二叉樹 8 6 10 5 7 9 11 映象二叉樹 8 10 6 11 9 7 5如果root的左右子樹都為空,返回false。否則使用一個臨時節點交換每層的左右節點,再進入遞迴,依次處理root.left和root.right。pub...

劍指offer 二叉樹的深度

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。首先判斷當前節點是否為空,為空則返回0 然後進入左右子樹的遞迴,左右子樹返回值中的最大值 1,就是當前二叉樹的深度。public int treedepth treenode ro...

劍指Offer 重建二叉樹

劍指offer 重建二叉樹 問題描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。前序遍歷 gdafemhz 中序遍歷 adefghmz 解題思路 根據前序遍歷的特點,我們知道根結點為g 觀察中序遍歷adefghmz。其中root節點...