Go語言實現 劍指offer 對稱的二叉樹

2021-10-01 08:20:27 字數 945 閱讀 2914

該題目**於牛客網《劍指offer》專題。

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。

go語言實現:

方法一:遞迴

/**

* definition for a binary tree node.

* type treenode struct

*/func

issymmetric

(root *treenode)

bool

​func

symmetric

(t1 *treenode, t2 *treenode)

bool

if t1 ==

nil|| t2 ==

nilreturn

(t1.val == t2.val)

&&symmetric

(t1.left, t2.right)

&&symmetric

(t1.right, t2.left)

}

方法二:迭代

利用佇列來進行迭代,佇列中每兩個連續的結點應該是相等的,而且它們的子樹互為映象。

func

issymmetric

(root *treenode)

bool

if t1 ==

nil|| t2 ==

nilif t1.val != t2.val

l.pushback

(t1.left)

l.pushback

(t2.right)

l.pushback

(t1.right)

l.pushback

(t2.left)

}return

true

}

Go語言實現 劍指offer 題目彙總

所列題目與牛客網 劍指offer 專題相對應。陣列 和為s的兩個數字 和為s的連續正數序列 連續子陣列的最大和 數字在排序陣列 現的次數 陣列中只出現一次的數字 旋轉陣列的最小數字 陣列中的逆序對 最小的k個數 陣列 現次數超過一半的數字 把陣列排成最小的數 陣列中重複的數字 滑動視窗的最大值 構建...

Go語言實現 劍指offer 剪繩子

該題目 於牛客網 劍指offer 專題。給你一根長度為n的繩子,請把繩子剪成整數長的m段 m n都是整數,n 1並且m 1 每段繩子的長度記為k 0 k 1 k m 請問k 0 xk 1 x xk m 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的...

Go語言實現 劍指offer 跳台階

該題目 於牛客網 劍指offer 專題。乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 1階 共1種跳法 2階 共2種跳法 3階 共3種跳法 n階 先跳1級,還剩n 1級,跳法是f n 1 先跳2級,還剩n 2級,跳法是f n 2 ...