二叉树的左右子结点交换传参数问题

假设二叉树的一个结点为node,它的左右子节点分别为node.left,node.right。为什么方法一能交换node结点的左右子节点,而方法二不能交换node结点的左右子节点啊

方法一

swap(node);
public void swap(TreeNode node) {
   TreeNode temp = node.left;
   node.left = node.right;
   node.right = temp;
}

方法二

swap(node.left, node.right);
public void swap(TreeNode left, TreeNode right) {
    TreeNode temp = left;
    left = right;
    right = temp;
}

方法二不行,要通过父节点对象,才能改变左孩子及右孩子的节点。