二叉树初始化问题——leetcode.530

分别使用递归法和迭代法去解题,递归直接使用TreeNode* pre;就可以直接通过了,但是迭代却不可以
class Solution {
public:
    int getMinimumDifference(TreeNode* root) {
        TreeNode* pre;  //这里如果改成 TreeNode* pre = NULL 就可以AC了
        TreeNode* cur = root;
        stack<TreeNode*> st;
        int result = INT_MAX;
        while(cur != NULL || !st.empty()){
            if(cur != NULL){
                st.push(cur);
                cur = cur->left;
            }else{
                cur = st.top();
                st.pop();
                if(pre != NULL){
                    result = min(result, cur->val - pre->val);
                }
                pre = cur;
                cur = cur-> right;
            }
        }
        return result;
    }
};

img

尝试过把输出的cur->val和pre->val打印出来,不知道什么原因pre->val的第一次赋值是4或者128
TreeNode* pre = new TreeNode(0); 也无法完全通过用例 求问具体原因

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。