首页 > 试题广场 >

已知二叉树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;}

这道题你会答吗?花几分钟告诉大家答案吧!