LeetCode Invert Binary Tree 翻转二叉树
2017-09-13 10:24
357 查看
题目描述:
Invert a binary tree.
样例输入输出:
解法一:
递归实现
解法二:
非递归实现 使用辅助空间
Invert a binary tree.
样例输入输出:
1 1 / \ / \ 2 3 => 3 2 / \ 4 4
解法一:
递归实现
private void invertRecursion(TreeNode root) { if (root == null) { return; } TreeNode tmp = root.left; root.left = root.right; root.right = tmp; if (root.left != null) { invertRecursion(root.left); } if (root.right != null) { invertRecursion(root.right); } }
解法二:
非递归实现 使用辅助空间
private void invertLoop(TreeNode root) { if (root == null) { return; } Stack<TreeNode> stack = new Stack<>(); stack.push(root); while (!stack.empty()) { TreeNode tmp = stack.pop(); //交换左右子树 TreeNode l = tmp.left; tmp.left = tmp.right; tmp.right = l; if (tmp.right != null) { stack.push(tmp.right); } if (tmp.left != null) { stack.push(tmp.left); } } }
相关文章推荐
- [LeetCode] Invert Binary Tree 翻转二叉树
- leetcode 226 Invert Binary Tree 翻转二叉树
- leetcode 226 Invert Binary Tree 翻转二叉树
- leetcode 226 Invert Binary Tree 翻转二叉树
- [LeetCode] Invert Binary Tree - 二叉树翻转系列问题
- LeetCode 226 Invert Binary Tree(翻转二叉树)
- 【LeetCode】226. Invert Binary Tree 二叉树翻转
- 【LeetCode】Invert Binary Tree 翻转二叉树 - Easy++
- 【LeetCode-面试算法经典-Java实现】【226-Invert Binary Tree(反转二叉树)】
- Invert Binary Tree(翻转二叉树)
- [LeetCode]226. Invert Binary Tree(反转二叉树)
- leetcode-226. Invert Binary Tree 二叉树、递归,交换两个变量的值
- LeetCode--Invert Binary Tree (反转二叉树)Python
- Invert a binary tree 翻转一棵二叉树
- lintcode 容易题:Invert Binary Tree 翻转二叉树
- ※ Leetcode - Tree - 226. Invert Binary Tree(反转二叉树 使用二级指针交换两个指针的地址)
- [LintCode] Invert Binary Tree 翻转二叉树
- Leetcode 226 Invert Binary Tree 二叉树
- [LeetCode][二叉树]Invert Binary Tree
- LeetCode 226. Invert Binary Tree(反转二叉树)