首页 > 其他 > 详细

leetcode897

时间:2018-09-29 01:12:14      阅读:221      评论:0      收藏:0      [点我收藏+]

这道题用C++来写,在本地执行正常,但是使用OJ判断输出结果是空,暂时不清楚原因。代码如下:

class Solution {
public:
    vector<int> V;
    //中序遍历
    void MidTree(TreeNode node)
    {
        if (&node != NULL)
        {
            if (node.left != NULL)
            {
                MidTree(*node.left);
            }
            V.push_back(node.val);
            if (node.right != NULL)
            {
                MidTree(*node.right);
            }
        }
    }

    TreeNode Join(TreeNode* t, int ct)
    {
        if (ct == V.size() - 1)
        {
            TreeNode tt = TreeNode(V[ct]);
            return tt;
        }
        TreeNode d = TreeNode(V[ct + 1]);
        TreeNode* dd = &d;
        TreeNode n = Join(dd, ct + 1);
        t->right = &n;
        return *t;
    }

    TreeNode* increasingBST(TreeNode* root) {
        MidTree(*root);
        TreeNode T = TreeNode(V[0]);
        TreeNode* TT = &T;
        TreeNode x = Join(TT, 0);
        return &x;
    }
};

 保留原有逻辑,修改为C#代码,则通过所有测试,代码如下:

public class Solution
    {
        public List<int> V = new List<int>();
        //中序遍历
        public void MidTree(TreeNode node)
        {
            if (node != null)
            {
                if (node.left != null)
                {
                    MidTree(node.left);
                }
                V.Add(node.val);
                if (node.right != null)
                {
                    MidTree(node.right);
                }
            }
        }

        public TreeNode Join(TreeNode t, int ct)
        {
            if (ct == V.Count() - 1)
            {
                TreeNode tt =new TreeNode(V[ct]);
                return tt;
            }
            TreeNode d = new TreeNode(V[ct + 1]);            
            TreeNode n = Join(d, ct + 1);
            t.right = n;
            return t;
        }
        public TreeNode IncreasingBST(TreeNode root)
        {
            MidTree(root);
            TreeNode T =new TreeNode(V[0]);            
            TreeNode x = Join(T, 0);
            return x;
        }
    }

不知是leetcode的判断机制问题,还是我的C++写法的问题。之后还是尽量使用C#吧。

leetcode897

原文:https://www.cnblogs.com/asenyang/p/9721616.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!