脚本宝典收集整理的这篇文章主要介绍了LeetCode226.翻转二叉树-迭代法,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
226.翻转二叉树
题目:输入二叉树根节点,把整棵树镜像翻转
深度优先遍历DFS
迭代-前序
class Solution { public: TreeNode* invertTree(TreeNode* root) { stack<TreeNode*> st; if (root != NULL) st.push(root); while (!st.empty()) { TreeNode* node = st.top(); st.pop(); swap(node->left, node->right); if (node->right) st.push(node->right); if (node->left) st.push(node->left); } return root; } };
广度优先遍历BFS
层序遍历
class Solution { public: TreeNode* invertTree(TreeNode* root) { queue<TreeNode*> que; if (root != NULL) que.push(root); while (!que.empty()) { int size = que.size(); for (int i = 0; i < size; i++) { TreeNode* node = que.front(); que.pop(); swap(node->left, node->right); if (node->left) que.push(node->left); if (node->right) que.push(node->right); } } return root; } };
以上是脚本宝典为你收集整理的LeetCode226.翻转二叉树-迭代法全部内容,希望文章能够帮你解决LeetCode226.翻转二叉树-迭代法所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。