The___Shy_ 2022-09-02 21:35 采纳率: 57.1%
浏览 38
已结题

c++ 指针问题,函数传指针

#include<iostream>
using namespace std;
struct TreeNode{
    int data;
    TreeNode *left;
    TreeNode *right;
};
int nums[1005];
int findMax(int l,int r)
{
    int tmp=nums[l];
    int pos=l;
    for(int i=l+1;i<=r;i++)
    {
        if(tmp<nums[i])
        {
            tmp=nums[i];
            pos=i;
        }
    }
    return pos;
}
void CreateTree(TreeNode *root,int l,int mid,int r);
int main()
{
    int a;
    int len=0;
    TreeNode *root;
    while(scanf("%d",&a)!=EOF)
    {
        nums[++len]=a;
    }
    int mid=findMax(1,len);
    CreateTree(root,1,mid,len);
    return 0;
}
void CreateTree(TreeNode *root,int l,int mid,int r)
{
    if(l>r)
    {
        root=NULL;
    }
    else
    {
        root=new TreeNode;
        root->data=nums[mid];
        
        int relMid=findMax(l,mid-1);
        CreateTree(root->left,l,relMid,mid-1);
        
        relMid=findMax(mid+1,r);
        CreateTree(root->right,mid+1,relMid,r);
    }    
}

为什么创建二叉树后,root是NULL
CreateTree参数传递的都是指针

  • 写回答

4条回答 默认 最新

  • 真相重于对错 2022-09-02 21:43
    关注

    函数传参是复制。所以函数结束后,传入的变量不会变化,你修改的只是他的副本。传指针就是复制地址,你修改地址指向的内容会传递回函数外。而你要修改复制过来的地址,则不会起到做用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月16日
  • 已采纳回答 4月8日
  • 修改了问题 9月2日
  • 创建了问题 9月2日

悬赏问题

  • ¥30 为什么会失败呢,该如何调整
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图
  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
  • ¥15 python螺旋图像
  • ¥15 算能的sail库的运用
  • ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
  • ¥15 找代写python里的jango设计在线书店
  • ¥15 请教如何关于Msg文件解析