面試題 對稱的二叉樹

2021-08-15 04:50:50 字數 650 閱讀 8620

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。如果一顆二叉樹和它的映象一樣,那麼它是對稱的。

思路:三種二叉樹的遍歷演算法,即前、中、後序遍歷方式,都是先左後右的操作。想到這裡一看人家的答案,算了,我還是抄上來吧。

bool issymmetrical(binarytreenode* proot)

return issymmetrical(proot,proot);

bool issymmetrical(binarytreenode* proot1,binarytreenode* proot2)

if(proot1==nullptr&&proot2==nullptr)

return true;

if(proot1==nullptr||proot2==nullptr)

return false;

if(proot1->m_nvalue!=proot2->m_nvalue)

return false;

return issymmetrical(proot1->m_pleft,proot2->m_pright)

&&issymmetrical(proot1->m_pright,proot2->m_pleft);

總結:判斷樹的相等問題,還是跟節點pass麼?那麼它的左和右呢?套路一毛一樣。

二叉樹面試題

1.求二叉樹節點個數 可以使用遞迴解決。將問題分解為求根節點 左子樹的節點數 右節點的節點數。實現 public size t size private size t size node root 2.求頁節點個數 頁節點 左右子樹都為空的節點被稱為頁節點,使用遞迴遍歷,當碰到乙個左右子樹為空的節點...

面試題 二叉樹

面試題 二叉樹 1.重建二叉樹 前序 中序 treenode reconstructbinarytree vector pre,vector vin treenode root new treenode pre 0 int pos 0 for pos pre left,vin left,pre ri...

面試題28 對稱二叉樹

題目 請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。方法 遞迴 root1 的左子樹和 root2 的右子樹比較,root1 的右子樹和 root2 的左子樹比較,遞迴下去直到 root1 和 roo...