翻转二叉树

    xiaoxiao2021-04-13  24

    1、问题描述

         翻转一棵二叉树。样例

    1 1 / \ / \ 2 3 => 3 2 / \ 4 4

    2、实现思路

          将同一节点的左右子树交换。

    3、代码

    /**  * Definition of TreeNode:  * class TreeNode {  * public:  *     int val;  *     TreeNode *left, *right;  *     TreeNode(int val) {  *         this->val = val;  *         this->left = this->right = NULL;  *     }  * }  */ class Solution { public:     /**      * @param root: a TreeNode, the root of the binary tree      * @return: nothing      */     void invertBinaryTree(TreeNode *root) {         // write your code here     if(root==NULL)   return ;       invertBinaryTree(root->left);       invertBinaryTree(root->right);       swapTree(root);      }     void swapTree(TreeNode *root){     TreeNode *p= root->left;     root->left = root->right;     root->right=p;    } };

    4、感想

          遍历,将每个节点的左右子树交换。

    转载请注明原文地址: https://ju.6miu.com/read-668853.html

    最新回复(0)