題目描述
翻轉一棵二叉樹,
示例
輸入:
4 / \ 2 7 / \ / \ 1 3 6 9
輸出:
4 / \ 7 2 / \ / \ 9 6 3 1
題目要求
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * struct TreeNode *left; 6 * struct TreeNode *right; 7 * }; 8 */ 9 10 struct TreeNode* invertTree(struct TreeNode* root){ 11 12 }
題解
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * struct TreeNode *left; 6 * struct TreeNode *right; 7 * }; 8 */ 9 10 struct TreeNode* invertTree(struct TreeNode* root){ 11 if(root==NULL)return root; 12 struct TreeNode *r=(struct TreeNode*)malloc(sizeof(struct TreeNode)); 13 r->val=root->val; 14 if(root->left!=NULL)r->right=invertTree(root->left); 15 else r->right=NULL; 16 if(root->right!=NULL)r->left=invertTree(root->right); 17 else r->left=NULL; 18 return r; 19 }題解
遞回
遞回需要明確終止條件、回傳值、遞回內容,二叉樹問題還需注意根節點為空的特殊情況,
題目來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/invert-binary-tree/
著作權歸領扣網路所有,商業轉載請聯系官方授權,非商業轉載請注明出處,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/139966.html
標籤:其他
上一篇:C語言遞回之對稱二叉樹
