已知二叉树Node定义如下, 现在需要设计一个方法交换左子树和右子树, 下列方法中, 可以实现交换的是?
class Node { public: Node* left; Node* right; char content; Node(char content); private: Node(const Node&); Node& operator=(const Node& node); };
class Node { public: Node* left; Node* right; char content; Node(char content); private: Node(const Node&); Node& operator=(const 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;}
这道题你会答吗?花几分钟告诉大家答案吧!