代码之家  ›  专栏  ›  技术社区  ›  Sikarwar

找到树的有序遍历,并通过对每个备用数求反来打印它们[闭合]

  •  -4
  • Sikarwar  · 技术社区  · 7 年前

    例如:

             1
          /      \
        /         \
      2             3
     /  \         / \
     4   5       6   7
    

    有序遍历输出:4 2 5 1 6 3 7

    顺序代码为

    Node * func(struct Node * root){
    if(root!=NULL)
    {
    func(root->lChild);
    cout<<root->nodeValue<<" ";
    func(root->rChild);
    }
    return NULL;
    

    }

    1 回复  |  直到 7 年前
        1
  •  1
  •   P0W    7 年前

    您可能需要做的就是添加一个额外的参数来跟踪替代符号,如下所示:

    Node * func(struct Node * root, int& signV ){
      if(root!=NULL)
      {
        func(root->lChild, signV);
        cout<<root->nodeValue * signV <<" "; signV *= -1 ; // Change sign here
        func(root->rChild, signV);
      }
      return NULL;
    }
    

    See Here