二叉树的镜像(剑指offer-18)

题目描述

操作给定的二叉树,将其变换为源二叉树的镜像。

 

解析

先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子节点,
当交换完所有的非叶子结点的左右子结点之后,就得到了树的镜像

解答

 1 /**
 2 public class TreeNode {
 3     int val = 0;
 4     TreeNode left = null;
 5     TreeNode right = null;
 6 
 7     public TreeNode(int val) {
 8         this.val = val;
 9 
10     }
11 
12 }
13 */
14 public class Solution {
15     public void Mirror(TreeNode root) {
16         if(root == null) return;
17         swap(root);
18         if(root.left!=null) Mirror(root.left);
19         if(root.right!=null)Mirror(root.right);
20     }
21     private void swap(TreeNode root){
22         TreeNode t = root.left;
23         root.left = root.right;
24         root.right = t;
25     }
26 }

 

posted @ 2020-07-02 18:04  10000_Hours  阅读(130)  评论(0编辑  收藏  举报