您的位置:首页 > 其它

[LintCode]175.翻转二叉树

2017-10-02 14:38 190 查看
翻转一棵二叉树

样例

1         1
/ \       / \
2   3  => 3   2
/       \
4         4


/**
* Definition of TreeNode:
* class TreeNode {
* public:
*     int val;
*     TreeNode *left, *right;
*     TreeNode(int val) {
*         this->val = val;
*         this->left = this->right = NULL;
*     }
* }
*/
class Solution {
public:
/**
* @param root: a TreeNode, the root of the binary tree
* @return: nothing
*/
void invertBinaryTree(TreeNode *root) {
if(root == NULL)  return;
stack<TreeNode*> stk;
stk.push(root);
while(!stk.empty()){
TreeNode *tmp = stk.top();
stk.pop();
swapTree(tmp);
if(tmp->left) stk.push(tmp->left);
if(tmp->right) stk.push(tmp->right);
}
}
void swapTree(TreeNode *&root){
TreeNode *temp=root->left;
root->left = root->right;
root->right = temp;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: