LC101 判斷是否是對稱二叉樹 遞迴 迭代

2021-10-08 18:36:48 字數 1369 閱讀 6516

題目:

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

思路:判斷二叉樹是否對稱

遞迴

class

solution

return

ismirror

(root.left, root.right);}

public

boolean

ismirror

(treenode root1, treenode root2)

if(root1 == null || root2 ==null || root1.val != root2.val)

if(root1.val == root2.val && root1.left == root2.right && root1.right == root2.left)

return

ismirror

(root1.right, root2.left)

&&ismirror

(root1.left, root2.right)

;}

迭代

首先我們引入乙個佇列

queuequeue = new linkedlist<>();
這是把遞迴程式改寫成迭代程式的常用方法

常常利用while迴圈

while(!queue.isempty())

return true;

class

solution

queue

queue =

newlinkedlist

<

>()

; queue.

offer

(root.left)

; queue.

offer

(root.right)

;while

(!queue.

isempty()

)if(node1 == null || node2 == null || node1.val != node2.val)

queue.

offer

(node1.left)

; queue.

offer

(node2.right)

;//兩兩比較

queue.

offer

(node1.right)

; queue.

offer

(node2.left);}

return

true;}

}

判斷二叉樹是否是對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 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 遞迴實現 需要滿足兩個子樹 根節點值相同 根節點1的左子樹與根節點2右子樹相同 根節點1...

判斷二叉樹是否對稱

題目描述 time limit 1000 ms memory limit 256 mb 層次遍歷的方式輸入乙個二叉樹,判斷這個二叉樹的結構 即不用管結點的值 是否映象對稱。輸入輸出格式 輸入描述 輸入一行字母,其中 表示空節點 字母長度小於1000 輸出描述 如果輸入的二叉樹對稱,輸出yes,否則輸...

101 二叉樹 對稱二叉樹

方法一 遞迴 對於此題 遞迴的點怎麼找?從拿到題的第一時間開始,思路如下 怎麼判斷一棵樹是不是對稱二叉樹?答案 如果所給根節點,為空,那麼是對稱。如果不為空的話,當他的左子樹與右子樹對稱時,他對稱。那麼怎麼知道左子樹與右子樹對不對稱呢?在這我直接叫為左樹和右樹。答案 如果左樹的左孩子與右樹的右孩子對...