迭代法:
- 将二叉树放入栈中进行操作
stack<TreeNode*> st;
st.push(pRoot);
- 交换当前节点的左右子树
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);
迭代法:
stack<TreeNode*> st;
st.push(pRoot);
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);