📜  打印具有孙子的二叉树的节点(1)

📅  最后修改于: 2023-12-03 15:25:45.375000             🧑  作者: Mango

打印具有孙子的二叉树的节点

在二叉树中,孙子节点是指距离当前节点两个层级的子节点。本文将介绍如何打印具有孙子的二叉树的节点。

思路

遍历二叉树,检查每个节点是否具有孙子节点,如果有则打印该节点的值。

代码实现

以下是Java语言实现。

public class Node {
    int val;
    Node left, right;
    public Node (int val) {
        this.val = val;
        left = right = null;
    }
}

public class Main {
    public static void printGrandchildren(Node node) {
        if (node == null) return;
        if (node.left != null && node.left.left != null) {
            System.out.println(node.left.left.val);
        }
        if (node.left != null && node.left.right != null) {
            System.out.println(node.left.right.val);
        }
        if (node.right != null && node.right.left != null) {
            System.out.println(node.right.left.val);
        }
        if (node.right != null && node.right.right != null) {
            System.out.println(node.right.right.val);
        }
        printGrandchildren(node.left);
        printGrandchildren(node.right);
    }
    public static void main(String[] args) {
        Node root = new Node(1);
        root.left = new Node(2);
        root.right = new Node(3);
        root.left.left = new Node(4);
        root.left.right = new Node(5);
        root.right.left = new Node(6);
        root.right.right = new Node(7);
        printGrandchildren(root);
    }
}
运行结果
4
5
6
7