劍指 Offer JZ58 二叉樹的下乙個結點

2021-10-08 20:37:41 字數 944 閱讀 8582

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

如果根節點為空,則二叉樹是對稱的

否則,進入 helper,最先傳入的引數是根節點的左子樹和右子樹

如果根節點的左子樹和右子樹都為空,說明二叉樹只有根節點乙個節點,則該二叉樹是對稱的

否則如果根節點的左子樹存在右子樹為空,或者右子樹存在左子樹為空,則該二叉樹是不對稱的

剩下最後乙個情況,根節點的左右子樹均存在,在這種情況下,我們要判斷根節點的左子樹和右子樹的值是否相同、根節點的左子樹的左子樹和根節點的右子樹的右子樹是否相同、根節點的左子樹的右子樹和根節點的右子樹的左子樹是否相同,三個條件缺一不可,並且在這步進行遞迴

/*

struct treenode

};*/

class

solution

private

:bool

issymmetricalhelper

(treenode* pleft, treenode *pright)

// 執行到下面這行**,說明 pleft 和 pright 不同時為 null

if(pleft ==

null

|| pright ==

null

)// 執行到下面這行**,說明 pleft 和 pright 都不為 null

return pleft-

>val == pright-

>val

&&issymmetricalhelper

(pleft-

>left, pright-

>right)

&&issymmetricalhelper

(pleft-

>right, pright-

>left);}

};

劍指 Offer JZ39 平衡二叉樹

輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。在這裡,我們只需要考慮其平衡性,不需要考慮其是不是排序二叉樹 平衡樹 平衡樹 balance tree,bt 指的是,任意節點的子樹的高度差都小於等於1。二叉排序樹 一棵空樹,或者是具有下列性質的二叉樹 若左子樹不空,則左子樹上所有結點的值均小於它的根結...

58 劍指offer 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。思路 首先根節點以及其左右子樹,左子樹的左子樹和右子樹的右子樹相同 左子樹的右子樹和右子樹的左子樹相同即可,採用遞迴 非遞迴也可,採用棧或佇列訪問各級子樹根節點 boolean issymm...

58 劍指offer 對稱的二叉樹

題目描述 請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。解題思路 定義一種遍歷方式,先遍歷父結點,然後遍歷右結點,然後遍歷左結點 如果為對稱二叉樹,則與前序遍歷相同。注意點 對於乙個結點如果其沒有子結點,應該將其子結點位置特殊處理,例如...