1. 程式人生 > >[LeetCode] 226 翻轉二叉樹

[LeetCode] 226 翻轉二叉樹

Invert Binary Tree(翻轉二叉樹)

【難度:Easy】
Invert a binary tree.
這裡寫圖片描述
to
這裡寫圖片描述
對一棵二叉樹進行映象翻轉。

解題思路

根據二叉樹的結構特點,使用遞迴的思想,在根節點root非空時,分別對左子樹和右子樹進行遞迴操作,更換root->left和root->right的值,由區域性到整體完成整棵二叉樹的翻轉。

c++程式碼如下:

/**
 * Definition for a binary tree node.
 * 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) { TreeNode* tmp = invertTree(root->left); root->left = invertTree(root->right); root->right
= tmp; } return root; } };