以下是二叉树节点的通用形式:

    1. public class TreeNode {
    2. public int val;
    3. public TreeNode left;
    4. public TreeNode right;
    5. public TreeNode() {
    6. }
    7. public TreeNode(int val) {
    8. this.val = val;
    9. }
    10. public TreeNode(int val, TreeNode left, TreeNode right) {
    11. this.val = val;
    12. this.left = left;
    13. this.right = right;
    14. }
    15. }

    在不同的场景下,对此节点进行封装,利用组合模式,除了包含此节点外,也可以封装一些其他的信息:
    如:节点深度depth、节点到根节点的路径和sum等等。
    封装节点深度depth:

    1. class QueueNode {
    2. TreeNode treeNode;
    3. //封装节点深度
    4. int depth;
    5. QueueNode(TreeNode treeNode, int depth){
    6. this.treeNode = treeNode;
    7. this.depth = depth;
    8. }
    9. }