import java.util.ArrayList;
class TreeNode{
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
left = null;
right = null;
}
}
public class Solution {
public static void main(String args[]){
TreeNode n1 = new TreeNode(1);
TreeNode n2 = new TreeNode(2);
TreeNode n3 = new TreeNode(3);
n1.left = n2;
n1.right = n3;
ArrayList<TreeNode> list = new ArrayList<TreeNode>();
list.add(n1);
TreeNode n4 = new TreeNode(4);
n1.right = n4;
list.add(n1);
System.out.println(list.size());
for(int i = 0; i < list.size(); i++){
System.out.println(list.get(i).val);
System.out.println(list.get(i).left.val);
System.out.println(list.get(i).right.val);
}
}
}
该段代码的输出是2
1
2
4
1
2
4
也就是说,把一个结点加入到arraylist之后,再来修改这个结点,arraylist里本来的值也会改变,当初传进去的其实是结点的引用。