對稱二叉樹

2021-10-18 02:06:22 字數 510 閱讀 1630

//對稱二叉樹

法1:遞迴

func issymmetric(root *treenode) bool

//根據映象的軌跡來遍歷2顆樹(即乙個訪問左子樹時,另乙個訪問右子數),並比較值是否相等

func check(p, q *treenode) bool

if p == nil || q == nil

return p.val == q.val && check(p.left, q.right) && check(p.right, q.left)

}法2:迭代(遞迴轉迭代 需要用到佇列)

//比較兩個相鄰的節點是否相等

func issymmetric(root *treenode) bool

for len(q) > 0

if u == nil || v == nil

if u.val != v.val

}return true

}

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

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

對稱二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。這題還是蠻簡單的。對稱二叉樹 include using namespace std struct treenode bool issymmetrical treenode proot1,t...

對稱二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。solution public class treenode 我們可以通過比較二叉樹的前序遍歷序列和對稱前序遍歷序列來判斷二叉樹是不是對稱的 public class solution bo...