[剑指offer]面试题19:二叉树的镜像
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                [剑指offer]面试题19:二叉树的镜像
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                面試題19:二叉樹的鏡像
 題目:請完成一個函數,輸入一個二叉樹,該函數輸出它的鏡像。
 二叉樹結點的定義如下:
求一棵樹的鏡像的過程:我們先前序遍歷這棵樹的每個結點,如果遍歷到的結點有子結點,就交換它的兩個子結點。當交換完所有非葉子結點的左右子結點之后,就得到了樹的鏡像。
代碼如下:
void MirrorRecursively(BinaryTreeNode *pNode) {if ((pNode == nullptr) || (pNode->lchild == nullptr && pNode->rchild == nullptr)) return;BinaryTreeNode *pTemp = pNode->lchild;pNode->lchild = pNode->rchild;pNode->rchild = pTemp;if (pNode->lchild)MirrorRecursively(pNode->lchild);if (pNode->rchild)MirrorRecursively(pNode->rchild); }測試用例
 ● 功能測試(普通的二叉樹,二叉樹的所有結點都沒有左子樹或者右子樹,只有一個結點的二叉樹)。
 ● 特殊輸入測試(二叉樹的根結點為NULL指針)。
 本題考點
 ● 考查對二叉樹的理解。本題實質上是利用樹的遍歷算法解決問題。
 ● 考查應聘者的思維能力。樹的鏡像是一個抽象的概念,應聘者需要在短時間內想清楚求鏡像的步驟并轉化為代碼。應聘者可以畫圖把抽象的問題形象化,這有助于其快速找到解題思路。
總結
以上是生活随笔為你收集整理的[剑指offer]面试题19:二叉树的镜像的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: [剑指offer]面试题18:树的子结构
- 下一篇: 怎么做好自助收银机和自助点餐机的消毒维护
