leetCode #226 Invert Binary Tree
2015-08-08 20:15
288 查看
题目:将二叉树左右反转
分析:可以采用递归的方法反转每个节点的左右子树。非递归的话其实就是层序遍历然后反转其左右节点就行了。
答案:
递归:
遍历:
分析:可以采用递归的方法反转每个节点的左右子树。非递归的话其实就是层序遍历然后反转其左右节点就行了。
答案:
递归:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* invertTree(TreeNode* root) { if( root == NULL) return NULL; TreeNode *tmpNode = root->left; root->left = invertTree(root->right); root->right = invertTree(tmpNode); } };
遍历:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* invertTree(TreeNode* root) { if( root == NULL) return NULL; queue<TreeNode*> node_queue; node_queue.push(root); while(node_queue.size()>0){ TreeNode *currentNode = node_queue.front(); node_queue.pop(); // exchange TreeNode *tmpNode = currentNode->left; currentNode->left = currentNode->right; currentNode->right = tmpNode; if (currentNode->left) node_queue.push(currentNode->left); if (currentNode->right) node_queue.push(currentNode->right); } return root; } };
相关文章推荐
- Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/sc
- UVA 10420 List of Conquests
- 单点登录(sso)
- HDU - 1870 - 愚人节的礼物
- 【MySql】使用心得小结
- Java Web项目中的经典代码抽取
- leetcode 101 —— Symmetric Tree
- Codeforces 5A
- hdoj 2874 Connections between cities 【并查集合并森林成一棵树 + LCA转RMQ】
- 【leetcode】155 - Min Stack
- Mysql驱动包版本不一致错误定位
- swift 基础部分
- 20个高级Java面试题汇总
- [leedcode 238] Product of Array Except Self
- 点的双联通+二分图的判定(poj2942)
- 【UML】UML简介
- Java中abstract和final、static
- OC语法——Object-C retain、copy、mutableCopy的详细分析
- Newton's Dark Secrets《牛顿探索》
- poj 2503 Babelfish