[LintCode] 翻转二叉树
递归实现:
1 /** 2 * Definition of TreeNode: 3 * class TreeNode { 4 * public: 5 * int val; 6 * TreeNode *left, *right; 7 * TreeNode(int val) { 8 * this->val = val; 9 * this->left = this->right = NULL; 10 * } 11 * } 12 */ 13 class Solution { 14 public: 15 /** 16 * @param root: a TreeNode, the root of the binary tree 17 * @return: nothing 18 */ 19 void invertBinaryTree(TreeNode *root) { 20 // write your code here 21 if (!root) return; 22 swap(root -> left, root -> right); 23 invertBinaryTree(root -> left); 24 invertBinaryTree(root -> right); 25 } 26 };
迭代实现:
1 /** 2 * Definition of TreeNode: 3 * class TreeNode { 4 * public: 5 * int val; 6 * TreeNode *left, *right; 7 * TreeNode(int val) { 8 * this->val = val; 9 * this->left = this->right = NULL; 10 * } 11 * } 12 */ 13 class Solution { 14 public: 15 /** 16 * @param root: a TreeNode, the root of the binary tree 17 * @return: nothing 18 */ 19 void invertBinaryTree(TreeNode *root) { 20 // write your code here 21 if (!root) return; 22 queue<TreeNode*> level; 23 level.push(root); 24 while (!level.empty()) { 25 TreeNode* node = level.front(); 26 level.pop(); 27 swap(node -> left, node -> right); 28 if (node -> left) level.push(node -> left); 29 if (node -> right) level.push(node -> right); 30 } 31 } 32 };
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步