python swap without temp

273 阅读1分钟

python 交换两个变量不需要中间变量

做LeetCode刷到“翻转二叉树”这道题,题解几乎都用到递归,本质上遍历二叉树每个节点,然后翻转当前node的左右子树。

class Solution:
    def invertTree(self, root: TreeNode) -> TreeNode:
        def recursion(root):
            if root is None:    #base
                return None
            root.left, root.right = root.right, root.left  #swap
            recursion(root.left)
            recursion(root.right)
        recursion(root)
        return root

其中root.left, root.right = root.right, root.left python交换两个变量无需temp,这行代码相当于:

tempTuple = (root.right, root.left)
root.left, root.right = tempTuple

从今天开始记录刷题过程和项目中遇到的小知识点和踩雷经历,供自己以后避雷用!