【问题标题】:How do I initialize a tree node to debug?如何初始化树节点以进行调试?
【发布时间】:2021-04-29 23:40:08
【问题描述】:

愚蠢的问题,但对二叉树来说是新的

我有这个例子,我想从 leetcode 调试。要调试,我需要发送有效值作为 q 和 p。但我似乎无法按照要求测试答案和学习的方式初始化我的节点。

public class TreeNode
    {
      public int val;
      public TreeNode left;
      public TreeNode right;
    public TreeNode(int val = 0, TreeNode left = null, TreeNode right = null)
        {
            this.val = val;
            this.left = left;
            this.right = right;
         }
    }
    public bool IsSameTree(TreeNode p, TreeNode q)
    {
        if (p == null && q == null) return true;
        if (p == null || q == null) return false;

        if (p.val == q.val)
        {
            return IsSameTree(p.left, q.left) && IsSameTree(p.right, q.right);
        }

        return false;
    }

    static void Main(string[] args)
    {
        Program pr = new Program();

我的问题在这里,我需要发送一个 p 和 q 的例子 p = [1,2,3],q = [1,2,3] 并输出 true; 要么 输入:p = [1,2], q = [1,null,2] 输出:假

输入:p = [1,2,1], q = [1,1,2] 输出:假

问题:如何使用前面的示例初始化 p 和 q? 所以 IsSameTree() 方法获取它们;

 TreeNode p = new TreeNode();
        p.val = 1;
        p.left = new TreeNode();
        p.left.val = 2;
        p.right = new TreeNode();
        p.right.val = 1;

        TreeNode q = new TreeNode();
        q.val = 1;
        q.left = new TreeNode();
        q.left.val = 1;
        q.right = new TreeNode();
        q.right.val = 2;
        bool isIdentical = pr.IsSameTree(p,q);

【问题讨论】:

  • 您的具体问题是什么?此代码返回什么?
  • 我的确切问题是我需要发送具有不同变体的 p 和 q 才能调试此代码。我需要能够输入:p = [1,2], q = [1,null,2] 输出:false 或输入:p = [1,2], q = [1,null,2] 输出: false 提供的示例返回 true,但我似乎无法以适当的方式为 p 和 q 提供生命

标签: c# binary-tree


【解决方案1】:

我不明白你的问题是什么。您是否期望 p 和 q 相等?然后你应该以同样的方式初始化它们。此外,您正在检查 p 和 p,这将返回基本相等。

试试这个:

TreeNode p = new TreeNode(1, new TreeNode(2), new TreeNode(3));
TreeNode q = new TreeNode(1, new TreeNode(2), new TreeNode(3));
bool isIdentical = pr.IsSameTree(p,q);

【讨论】:

  • 我应该可以输入以下内容 输入:p = [1,2], q = [1,null,2] 输出:false 输入:p = [1,2], q = [1,null,2] 输出:false 代码在 leetcode 上工作,但似乎无法调试它,因为 p 和 q 的初始化似乎不正确
  • 你很接近,只需要在构造函数中指定左右
【解决方案2】:

回答

代表:
输入:p = [1,2], q = [1,null,2] 输出:假

TreeNode p = new TreeNode(1, left: new TreeNode(val:2));
   TreeNode q = new TreeNode(val:1, left:null, right: new TreeNode(2));
   bool isIdentical = pr.IsSameTree(p,q);

【讨论】:

    猜你喜欢
    • 2021-07-29
    • 1970-01-01
    • 2017-11-02
    • 2015-08-27
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 2011-08-16
    • 2021-04-23
    相关资源
    最近更新 更多