博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构——距离根节点为k的节点
阅读量:4099 次
发布时间:2019-05-25

本文共 1354 字,大约阅读时间需要 4 分钟。

原文地址:

已知一个树的根节点,一个整数k。打印出所有距离根节点为k的节点。

例如,在下面的树中, 4, 5 & 8距离根节点的距离是2。

这个问题可以用递归来解决。

// Java program to print nodes at k distance from root/* A binary tree node has data, pointer to left child   and a pointer to right child */class Node {    int data;    Node left, right;    Node(int item)     {        data = item;        left = right = null;    }}class BinaryTree {    Node root;    void printKDistant(Node node, int k)     {        if (node == null)            return;        if (k == 0)         {            System.out.print(node.data + " ");            return;        }         else        {            printKDistant(node.left, k - 1);            printKDistant(node.right, k - 1);        }    }    /* Driver program to test above functions */    public static void main(String args[]) {        BinaryTree tree = new BinaryTree();        /* Constructed binary tree is                1              /   \             2     3            /  \   /           4    5 8         */        tree.root = new Node(1);        tree.root.left = new Node(2);        tree.root.right = new Node(3);        tree.root.left.left = new Node(4);        tree.root.left.right = new Node(5);        tree.root.right.left = new Node(8);        tree.printKDistant(tree.root, 2);    }}// This code has been contributed by Mayank Jaiswal

上面的代码输出4,5和8。

时间复杂度是:O(n),在这里n是已知二叉树中节点的数目。

转载地址:http://wuhii.baihongyu.com/

你可能感兴趣的文章
人工神经网络——反向传播算法(BackPropagation)
查看>>
进程的地址空间概述
查看>>
Windows 窗口底层原理
查看>>
一种函数指针的运用
查看>>
Win32程序之进程的原理
查看>>
C++虚函数原理
查看>>
MySQL的索引
查看>>
今天,Python信息量很大!
查看>>
Flash 已死,Deno 当立?
查看>>
编程差的程序员,90%都是吃了数学的亏!骨灰级开发:方法不对,努力也白费...
查看>>
编程差的程序员,90%都是吃了数学的亏!骨灰级开发:方法不对,努力也白费...
查看>>
都无代码了,还要程序员吗?
查看>>
程序员:凭自己能力吃饭,有什么理由瞧不起?
查看>>
面试想拿 10K,HR 说我只配7k?
查看>>
副业过万的程序员都知道的网站有哪些
查看>>
那些人生“开挂”的程序员,都在干什么?
查看>>
影响科学圈的那些计算机代码
查看>>
乐视视频 App 图标改为“欠 122 亿”,网友:我在别家分红包,却在你家随份子!...
查看>>
乔布斯18岁求职信拍卖价22.24万美元,值吗?
查看>>
为何程序员总喜欢写技术博客,看完恍然大悟...
查看>>