题目描述
操作给定的二叉树,将其变换为源二叉树的镜像
思路
画图可得:如果根节点下面有子节点的话,就把他们交换位置;比较难的还是一个递归的思想;
代码
|
|
循环压栈的方法,其实和递归差不多123456789101112131415161718static public void Mirror1(TreeNode treeNode){ Stack<TreeNode> stack = new Stack<>(); stack.push(treeNode); while (!stack.empty()) { TreeNode node = stack.pop(); if (node.left!=null&&node.right!=null) { TreeNode temp = node.left; node.left=node.right; node.right=temp; } if (node.left!=null) stack.push(node.left); if (node.right!=null) stack.push(node.right); }}
收获
- 画图会让思路更清晰,先把思路理清楚,然后再敲代码
- 递归的代码还是比较难以书写的,但是写出来就很容易看懂;