二叉树的翻转,即以根所在垂直线为对称线,对称位置的两个节点进行交换。
实现这种算法,可以有两种思路,即递归和非递归(栈)。
下面给出Java代码实现。
import java.util.Stack;
/**
* Created by Lee on 2017/11/11.
*/
//树节点
class Node {
int value;
Node left;
Node right;
Node(int value) {
this.value = value;
}
@Override
public String toString() {
return "Node{" +
"value=" + value +
", left=" + left +
", right=" + right +
'}';
}
}
public class InvertBinaryTreeDemo {
public static void swap(Node root){
Node temp = root.left;
root.left = root.right;
root.right = temp;
}
//递归实现
public static Node invert(Node ro