二叉树中遍历方式有很多中,最简单的是前序遍历,打印自己,然后先左后右
// 前序遍历 根节点->左子树->右子数
public void preOrderTraversal(Node node) {
if (node == null) {
return;
}
System.out.println(node.value);
preOrderTraversal(node.left);
preOrderTraversal(node.right);
}
二叉树反转,首先左树遍历到底,然后再切换左右,然后切换右路
public Node invertTree(Node root) {
if (root == null) {
return null;
}
//先遍历左子树到底
root.left = invertTree(root.left);
//遍历右子树
root.right = invertTree(root.right);
//左右子树互换
Node tmp = root.left;
root.left = root.right;
root.right = tmp;
return root;
}