1. package com.tango;
    2. import java.util.ArrayList;
    3. import java.util.LinkedList;
    4. import java.util.List;
    5. public class Test {
    6. public static void main(String[] args) {
    7. Node node3 = new Node();
    8. node3.setId(3);
    9. Node node31 = new Node();
    10. node31.setId(3);
    11. Node node32 = new Node();
    12. node32.setId(3);
    13. Node node4 = new Node();
    14. node4.setId(3);
    15. Node node41 = new Node();
    16. node41.setId(3);
    17. Node node42 = new Node();
    18. node42.setId(3);
    19. Node node2 = new Node();
    20. node2.getNode().add(node3);
    21. node2.getNode().add(node31);
    22. node2.getNode().add(node32);
    23. Node node21 = new Node();
    24. node21.getNode().add(node4);
    25. node21.getNode().add(node41);
    26. node21.getNode().add(node42);
    27. node21.setId(21);
    28. node2.setId(2);
    29. Node node1 = new Node();
    30. node1.getNode().add(node2);
    31. node1.getNode().add(node21);
    32. node1.setId(1);
    33. Node node0 = new Node();
    34. node0.getNode().add(node1);
    35. node0.setId(0);
    36. digui(node0);
    37. }
    38. public static void digui(Node node){
    39. int sum = 0;
    40. int cursor = 0;
    41. for (Node tempNode : node.getNode()) {
    42. if(tempNode.getId()==3){
    43. tempNode.setNum(++cursor);
    44. node.setNum(++sum);
    45. cursor = 0;
    46. }else {
    47. digui(tempNode);
    48. node.setNum(node.getNum()+tempNode.getNum());
    49. }
    50. }
    51. System.out.println(node.getId()+"数量:"+node.getNum());
    52. }
    53. }
    54. class Node{
    55. int id;
    56. int num;
    57. List<Node> node = new ArrayList<>();
    58. public List<Node> getNode() {
    59. return node;
    60. }
    61. public void setId(int id) {
    62. this.id = id;
    63. }
    64. public int getId() {
    65. return id;
    66. }
    67. public int getNum() {
    68. return num;
    69. }
    70. public void setNum(int num) {
    71. this.num = num;
    72. }
    73. }