标签:node TreeNode 函数 val 对象 参数 root change left
对象作为函数的参数
当对象作为函数的参数传递到方法中时,实际上传递的是对象的地址值。
1. 以传递TreeNode对象为例,root传递给change函数的是root的地址值。
public static void change(TreeNode node)
{
}
public static void main(String[] args) {
TreeNode root=new TreeNode(5);
change(root);
}
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
在内存中参数传递的示意图:
2. 改变引用对象的值,真实值不变。
public static void change(TreeNode node)
{
node=null;
}
public static void main(String[] args) {
TreeNode root=new TreeNode(5);
change(root);
}
输出:
root=com.tree.TreeNode@41629346
node=null
3.创建root时,初始化root.left对象
4.通过引用对象node改变left的值,真实值改变
public static void change(TreeNode node)
{
node.left=null;
}
public static void main(String[] args) {
TreeNode root=new TreeNode(5);
root.left=new TreeNode(4);
change(root);
}
输出:
root.left=null;
node.left=null;
标签:node,TreeNode,函数,val,对象,参数,root,change,left 来源: https://www.cnblogs.com/greengages/p/15762191.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。