資料結構和演算法之判斷對稱二叉樹

2021-09-29 15:37:23 字數 1171 閱讀 5734

思路

根節點相等,左子樹的左子樹和右子樹的右子樹對稱,左子樹的右子樹和右子樹的左子樹對稱

直接上**:

package com.zyblue.fastim.common.algorithm;

/** * 判斷是否是對稱二叉樹

* author : bluesky 2019.11.14

* 例如

* 1

* / \

* 2 2

* / \ / \

* 3 4 4 3

* 思路:

* 1、遞迴實現

* 2、根節點相等,左子樹的左子樹和右子樹的右子樹對稱,左子樹的右子樹和右子樹的左子樹對稱

*/public

class

symmetrytree

else

}public boolean issymmetrytree

(treenode nodeleft, treenode noderight)

else

if(nodeleft == null || noderight == null)

else

// 這裡遞迴每乙個子樹,遞迴乙個是錯誤的

return

issymmetrytree

(nodeleft.

getleft()

, noderight.

getright()

)&&issymmetrytree

(nodeleft.

getright()

, noderight.

getleft()

);}}

public

static

class

treenode

public

void

setval

(int val)

public treenode getleft()

public

void

setleft

(treenode left)

public treenode getright()

public

void

setright

(treenode right)

}}

演算法 判斷對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 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示例 輸入 2,1,5,6,2,3 輸出 10說實話這道題我想了挺久的,可能太久沒接觸過二叉...

判斷對稱二叉樹

typedef struct node bn 不用關心輸入,二叉樹構造和刪除過程已經在main函式中實現,需要你們實現函式 int issymmetric bn root 來判斷一棵二叉樹是否對稱,對稱返回1,非對稱返回0.node結構要按照上面的 在symmetric.h中進行定義。注意被測試二叉...

判斷對稱二叉樹

相等條件 1.走到最底層還一樣,說明相等 root.left null root.right null,return true 2.一端有葉子一端沒有葉子,肯定不想等 if left null right null return false 3.值相等 左的右等於右的左 左的左等於右的右 class...