算法 翻转二叉树 dfs
Posted bonelee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法 翻转二叉树 dfs相关的知识,希望对你有一定的参考价值。
翻转二叉树
翻转一棵二叉树。左右子树交换。
Example
样例 1:
输入: {1,3,#}
输出: {1,#,3}
解释:
1 1
/ => 3 3
样例 2:
输入: {1,2,3,#,#,4}
输出: {1,3,2,#,4}
解释:
1 1
/ / 2 3 => 3 2
/ 4 4
Challenge
递归固然可行,能否写个非递归的?
代码:
""" Definition of TreeNode: class TreeNode: def __init__(self, val): self.val = val self.left, self.right = None, None """ class Solution: """ @param root: a TreeNode, the root of the binary tree @return: nothing """ def invertBinaryTree(self, root): # write your code here if not root: return self.invertBinaryTree(root.left) self.invertBinaryTree(root.right) root.left, root.right = root.right, root.left
当然,使用先序遍历也可以
以上是关于算法 翻转二叉树 dfs的主要内容,如果未能解决你的问题,请参考以下文章