首页 > 试题广场 >

已知二叉树Node定义如下, 现在需要设计一个方法交换左子树

[单选题]
已知二叉树Node定义如下, 现在需要设计一个方法交换左子树和右子树, 下列方法中, 可以实现交换的是? 
  • void swap(Node root) {Node* temp=root.left;root.left=root.right;root.right=temp;}
  • void swap(Node& left, Node& right) {Node temp=left; left=right;right=temp;}
  • void swap(Node* left, Node* right) {Node* temp=left; left=right;right=temp;}
  • void swap(Node*& left, Node*& right) {Node* temp=left; left=right;right=temp;}
A操作的是传入参数(root)整个对象的复制,并不会改变传入参数里left和right的值~这点和Java、C#不同哦,Java、C#函数里对象只能传引用的复制。
发表于 2019-09-05 18:15:24 回复(2)

这怎么就不能就是A了?而且Java有指针嘛,我明明做的就是java题,老是给我弄到C++里面,就是因为指针弄不明白才不往C++走的。。。还给我这种指针题目。。
发表于 2019-09-02 09:16:39 回复(0)
A为啥不对啊
发表于 2019-08-12 11:27:53 回复(0)