题目如下:
随机构建一棵树,交换每个节点的左右子树。
思路:
(使用java语言)递归实现——>
(1)首先让头节点的左右子树进行交换,递归头结点的左子节点(假设为headLeft1)
(2)让headLeft1的左右子树交换,再递归headLeft1的左子节点,直到递归到叶子节点;
(3)按照以上思路再递归节点右子节点的左右子树进行交换,直到每个节点的左右节点都递归交换位置;
(4)遍历输出交换后的树。
思路图示:
代码如下:
public class SwapTree {
public static void main(String[] args) {
Node root=buildTree();
System.out.println("交换之前==============");
inOrderVisit(root);//交换之前的先序遍历
ExchangeLeftRight( root);
System.out.println()