101 對稱二叉樹

2021-10-06 16:46:53 字數 1244 閱讀 4410

給定乙個二叉樹,檢查它是否是映象對稱的。

例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。

但是下面這個 [1,2,2,null,3,null,3] 則不是映象對稱的:

將陣列轉換為二叉樹,在進行判斷:

public class treenode 

int length = arrays.length;

// 生成二叉樹節點

temps = new arraylist(length);

for (int i = 0; i < length; i++)

// 構建二叉樹 根節點n[i] 左子樹n[i*2+1] 右子樹 n[i*2+2],最後乙個結點要做判斷,

for (int i = 0; i < length / 2 - 1; i++)

/*** 當完全二叉樹最後乙個節點是其父節點的左孩子時,樹的節點數為偶數;

* 當完全二叉樹最後乙個節點是其父節點的右孩子時,樹的節點數為奇數

* 最後乙個非葉子節點的序號也是n/2-1,序號是從0開始的

*/// 處理最後乙個非葉子節點

int lastnode = length / 2 - 1;

treenode node = temps.get(lastnode);

// 新增左子樹

node.left = temps.get(lastnode * 2 + 1);

if (length % 2 != 0)

treenode root = temps.get(0);

temps.clear();

temps = null;

return root;

}//用遞迴判斷它是否是映象對稱的

public boolean issymmetric(treenode root)

private boolean issymmertric(treenode t1,treenode t2)

}

測試用例:

public class test ;

treenode root=treenode.arraystotree(n);

system.out.println(new treenode().issymmetric(root));}}

101 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 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說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。思路 遞迴就用dfs,迭代是b...

101 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 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說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。解題思路 對稱二叉樹可以理解...

101 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 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 說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。使用輔助空間佇列 defi...