如何初始化树节点进行调试?
How do I initialize a tree node to debug?
愚蠢的问题,但对二叉树来说是新问题
我有这个例子,我想从 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();
my problem is here, I need to send an exmaple of p and q as
p = [1,2,3], q = [1,2,3] and output true;
or
Input: p = [1,2], q = [1,null,2]
Output: false
输入: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 agains p,这将 return 基本相等。
试试这个:
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);
Answer
表示:
输入: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);
愚蠢的问题,但对二叉树来说是新问题
我有这个例子,我想从 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();
my problem is here, I need to send an exmaple of p and q as p = [1,2,3], q = [1,2,3] and output true; or Input: p = [1,2], q = [1,null,2] Output: false
输入: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 agains p,这将 return 基本相等。
试试这个:
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);
Answer
表示:
输入: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);