對稱二叉樹(遞迴 迭代)

2021-09-25 07:16:45 字數 1062 閱讀 3138

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

例如,二叉樹[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

說明:

如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。

寫乙個遞迴函式,當且僅當兩個節點的值相等且節點的孩子也對稱的時候返回true

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

public

boolean

dfs(treenode root1, treenode root2)

return

true;}

}

迭代的思路就是層次遍歷,最開始將根節點入隊兩次,然後每次出隊兩個節點ab,比較兩個節點。若不同時為空或者值不相等,說明不是映象;若相等,將節點a的左孩子與節點b的右孩子一起入隊,將節點a的右孩子與節點b的左孩子一起入隊。

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

else

return

false;}

return

true;}

}

遞迴 對稱二叉樹

原題傳送門 說點題外話,這道題是noip2019 pjt4,被稱作有史以來最簡單的t4,然而.我這個小蒟蒻當時只得了4分 直接輸出1 現在回想起來,覺得自己那時是真的智障啊,最可氣的是,這道題一讀題就可以發現結果很容易為3,哪怕完全不會,直接輸出3也明顯比直接輸出1要好啊 事實證明,直接輸出3的得分...

演算法 遞迴 對稱二叉樹

根據對稱樹的特點,我們用兩個指標分別往左子節點和右子節點遞迴查詢 每次查詢時比較他們是否都為空,如果都不為空就比較是否值相等 如果值相等,就繼續檢查左節點的左節點和右節點的右節點 左節點的右節點和右節點的左節點 只要都相同就說明對稱,否則不對稱 我們使用乙個佇列,根據對稱樹的特點,每次分別將左子節點...

對稱二叉樹c 對稱的二叉樹

很簡單,關鍵還是知道怎麼樣才能判斷乙個 二叉樹是否對稱,只要採用前序 中序 後序 層次遍歷等任何一種遍歷方法,分為先左後右和先 右後左兩種方法,只要兩次結果相等就說明這棵樹是一顆對稱二叉樹。迭代版本 class solution public bool issymmetric treenode ro...