LintCode_175 翻转二叉树
题目
翻转一棵二叉树
样例
1 1
/ \ / \
2 3 => 3 2
/ \
4 4
和前序遍历代码很相似
从叶子节点依次翻转递归到根节点
C++代码
void invertBinaryTree(TreeNode* root) { stack<TreeNode*> s; TreeNode* p = root; while (p || !s.empty()) { while (p) { s.push(p); p = p->left; } TreeNode* pa = s.top(); TreeNode* left = pa->left; TreeNode* right = pa->right; pa->left = right; pa->right = left; p = pa->left; s.pop(); } }