劍指offer面試題28 對稱的二叉樹

2021-10-05 17:30:44 字數 1026 閱讀 4876

題目

方案方法1、使用dfs 遞迴遍歷

public boolean issymmetric(treenode root) 

return helper(root.left,root.right);

}private boolean helper(treenode left,treenode right)

if(left==null||right==null||(left.val!=right.val))

return helper(left.left,right.right)&&helper(left.right,right.left);

}

方法2、使用bfs遍歷 因為是二叉樹要判斷映象,所以佇列中除了根節點外,都要放4個元素,有的題解中使用了雙端佇列,但是覺得沒有必要,乙個佇列完全可以滿足 就左右挨著放唄

public boolean issymmetric(treenode root) 

queuequeue = new linkedlist();

queue.add(root.left);

queue.add(root.right);

while (!queue.isempty())

if(tmpleft ==null||tmpright==null||(tmpleft.val!=tmpright.val))

queue.add(tmpleft.left);

queue.add(tmpright.right);

queue.add(tmpleft.right);

queue.add(tmpright.left);

}return true;

}

使用遞迴和層次遍歷需要注意的是bfs中遇到節點對稱要繼續往下判斷,只有發現不對稱才返回。

《劍指offer 面試題28 對稱的二叉樹》

劍指offer 面試題28 對稱的二叉樹 註明 僅個人學習筆記 先序遍歷的序列 等於 對稱先序遍歷的序列 當樹中所有節點均相同時,遍歷時,序列中帶入null,便可區分 package com.chapter3.code public class issymmetrical28 private boo...

劍指offer 面試題28 對稱的二叉樹

請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 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 輸入 root 1,2,...

劍指OFFER 面試題28 對稱的二叉樹

題目 請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 34 43但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 33示例 1 輸入 root 1,2,2,...