反转二叉树
二叉树 反转
2023-09-27 14:25:00 时间
尴尬了,昨天被问,突然不知道咋搞。
二叉树遍历,前中后,是以root为准的前中后
所以反转二叉树用后续遍历就好
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */
递归
struct TreeNode* invertTree(struct TreeNode* root) { struct TreeNode *node; if (root == NULL) return root; node = invertTree(root->left); root->left = invertTree(root->right); root->right = node; return root; }
非递归
struct TreeNode* invertTree(struct TreeNode *root) { struct TreeNode *node, *tmp; Stack treeStack; if (root == NULL) return root; stack_init(&treeStack, NULL); stack_push(&treeStack, root); while (treeStack.size > 0) { stack_pop(&treeStack, &node); tmp = node->left; node->left = node->right; node->right = tmp; if (node->left) stack_push(&treeStack, node->left); if (node->right) stack_push(&treeStack, node->right); } stack_destory(&treeStack); return root; }
相关文章
- 简单构建一个二叉树而且产生镜像
- 判断二叉树是否为完全二叉树
- 二叉树,二叉树的归先序遍历,中序遍历,后序遍历,递归和非递归实现
- 【Leetcode】102. 二叉树的层序遍历(中等)
- [算法]按之字形顺序打印二叉树
- 剑指 Offer 28. 对称的二叉树
- 求二叉树的高度
- 从底向上层次遍历二叉树
- LeetCode103二叉树的锯齿形层次遍历(相关话题:二叉树、层次遍历)
- 96、【树与二叉树】leetcode ——404. 左叶子之和:递归法[先序+后序]+迭代法[先序+层次](C++版本)
- 【二叉树OJ题(二)】前序遍历&&中序遍历&&后序遍历&&另一颗树的子树&&二叉树遍历&&平衡二叉树
- 【数据结构/二叉树/公共祖先问题】题解+详细备注(共2题)
- 【剑指offer】22从上往下打印二叉树
- 十二、平衡二叉树(2-3查找树、红黑二叉树)
- 【历史上的今天】1 月 8 日:谷歌推出 Google Pay;Quibi 的重生;平衡二叉树的发明者出生
- [LeetCode] 968. Binary Tree Cameras 二叉树相机
- leetcode算法257.二叉树的所有路径