二叉树系列——二叉树的镜像

来源:互联网 发布:手机论坛软件 编辑:程序博客网 时间:2024/06/05 02:50

来源:剑指offer 面试题19


思路:我们先前序遍历这棵树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点。当交换完所有非叶子节点的左右子节点之后,就得到了树的镜像。


下面是代码:


//二叉树定义struct BinaryTreeNode{int m_nValue;BinaryTreeNode* m_pLeft;BinaryTreeNode*m_pRight;};/************************************************************************//*  二叉树的镜像         剑指offer,面试题19                             *//************************************************************************/void BinaryTreeMirror(BinaryTreeNode* pNode){if (pNode == NULL)//边界判断,输入为空{return;}if (pNode->m_pLeft == NULL&&pNode->m_pRight == NULL)//叶子节点{return;}BinaryTreeNode*pTemp = pNode->m_pLeft;//交换左右pNode->m_pLeft = pNode->m_pRight;pNode->m_pRight = pTemp;if (pNode->m_pLeft)//左边不为空{BinaryTreeMirror(pNode->m_pLeft);}if (pNode->m_pRight)//右边不为空{BinaryTreeMirror(pNode->m_pRight);}}


0 0
原创粉丝点击