博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题19:二叉树镜像
阅读量:5127 次
发布时间:2019-06-13

本文共 1119 字,大约阅读时间需要 3 分钟。

递归方法非常简单:

1 void MirrorRecursively(BinaryTreeNode *pNode) 2 { 3     if((pNode == NULL) || (pNode->m_pLeft == NULL && pNode->m_pRight)) 4         return; 5  6     BinaryTreeNode *pTemp = pNode->m_pLeft; 7     pNode->m_pLeft = pNode->m_pRight; 8     pNode->m_pRight = pTemp; 9     10     if(pNode->m_pLeft)11         MirrorRecursively(pNode->m_pLeft);  12 13     if(pNode->m_pRight)14         MirrorRecursively(pNode->m_pRight); 15 }

循环需要利用stack:

1 void MirrorIteratively(BinaryTreeNode* pRoot) 2 { 3     if(pRoot == NULL) 4         return; 5  6     std::stack
stackTreeNode; 7 stackTreeNode.push(pRoot); 8 9 while(stackTreeNode.size() > 0)10 {11 BinaryTreeNode *pNode = stackTreeNode.top();12 stackTreeNode.pop();13 14 BinaryTreeNode *pTemp = pNode->m_pLeft;15 pNode->m_pLeft = pNode->m_pRight;16 pNode->m_pRight = pTemp;17 18 if(pNode->m_pLeft)19 stackTreeNode.push(pNode->m_pLeft);20 21 if(pNode->m_pRight)22 stackTreeNode.push(pNode->m_pRight);23 }24 }

 

转载于:https://www.cnblogs.com/raichen/p/5646937.html

你可能感兴趣的文章
MVC解决方案发布IIS 登录页面需要输入两次帐号问题
查看>>
Visual Studio 2017 初次体验
查看>>
zTree树
查看>>
tips 前端 点击事件
查看>>
ACM: 限时训练题解-Epic Professor-水题
查看>>
Mybatis的使用
查看>>
Node.js 连接 MySQL
查看>>
ACM-ICPC 2018 world final A题 Catch the Plane
查看>>
那些年,那些书
查看>>
如何进行库存管理?
查看>>
面向对象六大基本原则的理解
查看>>
新手程序员在工作中需要注意的问题
查看>>
注解小结
查看>>
HTML DOM笔记
查看>>
【转】Linux 虚拟内存
查看>>
java代码编译与C/C++代码编译的区别
查看>>
Bitmap 算法
查看>>
转载 C#文件中GetCommandLineArgs()
查看>>
list control控件的一些操作
查看>>
精读《useEffect 完全指南》
查看>>