没有二叉树反转的基本情况?
No base case for binary tree reversal?
为什么以下 Python 反转二叉树的代码不需要基本情况?
def invertTree(root):
if root:
root.left, root.right = invertTree(root.right), invertTree(root.left)
return root
其中节点定义为
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
?
基本情况是 if: root
的计算结果为 false。例如当你调用 invertTree(root.right)
时,如果 root.right
不存在,那么在 invertTree
调用中 if: root
将计算为 false,并且函数将 return 没有再次呼叫 invertTree
。
为什么以下 Python 反转二叉树的代码不需要基本情况?
def invertTree(root):
if root:
root.left, root.right = invertTree(root.right), invertTree(root.left)
return root
其中节点定义为
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
?
基本情况是 if: root
的计算结果为 false。例如当你调用 invertTree(root.right)
时,如果 root.right
不存在,那么在 invertTree
调用中 if: root
将计算为 false,并且函数将 return 没有再次呼叫 invertTree
。