一些细节

假如有个struct对象

struct point{
        int x,y;
        point(int a,int b):x(a),y(b){}
    };

point(i,j)产生一个point对象,new point(i,j)产生一个point对象指针

-----------------------------------------------------------------------------------------------------------------------------

sort(first,end)

sort(first,end,cmp)

bool cmp(int x,int y);

注意cmp函数要么设置成静态的,要么放到类外面

原因:所有成员函数都有一个隐含的指针参数,即this。这就和sort需要的comp函数原型不一致了。而static函数就没有这个隐含参数了


对于一个string s进行排序;

sort(&s[0],&s[0]+s.length())

对于一个数组A进行排序;

sort(A,A+n)

-----------------------------------------------------------------------------------------------------------------------------

class Solution {
    TreeNode *prev;
public:
    void flat(TreeNode *root){
        if(root==NULL)
            return;
        if(prev){
            prev->left=NULL;
            prev->right=root;
        }
        prev=root;

        //flat(root->left);
        //flat(root->right);
        TreeNode *leftNode=root->left;
        TreeNode *rightNode=root->right;
        flat(leftNode);
        flat(rightNode);
    }
    
    void flatten(TreeNode *root) {
        prev=NULL;
        flat(root);
    }
};

递归过程中节点的左右子树可能会改变,所以传参数的时候要注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值