面試題28 對稱的二叉樹。2星

2021-10-03 05:41:40 字數 825 閱讀 3456

方法一:

初次寫的**,效率較高

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

if(root.left==null && root.right!=null)

//如果左右子樹有一方為空一方非空,則返回false

if(root.left != null && root.right != null)

return

true;}

public

boolean

batter

(treenode root1,treenode root2)

if(root1==null && root2!=null)

//如果左右子樹有一方為空一方非空,則返回false

if(root1 == null && root2 == null)

//如果左右子樹都為空,則返回true

else

if(root1.val==root2.val)

else

return

false;}

}

1
/

2 2/ \ /

3 4 4 3

以此樹為例,首先將它分成兩棵子樹,然後分別比較左右子樹,採用遞迴比較,都是用一棵樹的左子樹,比較另一顆樹的右子樹,再用該樹的右子樹比較另一棵樹的左子樹。如果對稱,比到最後都為空,返回true,否則返回false。

面試題28 對稱二叉樹

題目 請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。方法 遞迴 root1 的左子樹和 root2 的右子樹比較,root1 的右子樹和 root2 的左子樹比較,遞迴下去直到 root1 和 roo...

面試題28 對稱的二叉樹

題目 請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。思路 我們通常有三種不同的二叉樹遍歷演算法,即前序遍歷 中序遍歷和後序遍歷。在這三種遍歷演算法中,都是先遍歷左子結點再遍歷右子結點。以前序遍歷為例,我們可以定義乙個遍歷演算法,先遍歷右...

面試題28 對稱的二叉樹

思路 採用遞迴,先將樹分為兩株,即根節點的左子樹和柚子樹。然後利用函式,依次比較左子樹和柚子樹是否對稱 左子樹的左子樹是否等於柚子樹的柚子樹等條件 definition for a binary tree node.struct treenode class solution return isle...