Leetcode刷题笔记 226. 翻转二叉树

226. 翻转二叉树


时间:2020年9月16日
知识点:二叉树
题目链接: https://leetcode-cn.com/problems/invert-binary-tree/

题目
翻转一棵二叉树。

示例1
输入

	  	 4
	   /   \
	  2     7
	 / \   / \
	1   3 6   9

输出

	     4
	   /   \
	  7     2
	 / \   / \
	9   6 3   1

代码

#include 
#include 
using namespace std;
struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if (root == nullptr) {
            return nullptr;
        }
        TreeNode* left = invertTree(root->left);
        TreeNode* right = invertTree(root->right);
        root->left = right;
        root->right = left;
        return root;
    }
};
 
class Solution {
public:
	TreeNode* invertTree2(TreeNode* root) 
	{ 
		if (root == NULL) return root; 
		swap(root->left, root->right); // 中 
		invertTree(root->left); // 左 
		invertTree(root->right); // 右 
		return root;
	} 
};

今天也是爱zz的一天哦!

你可能感兴趣的:(leetcode,二叉树,leetcode,算法)