栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JZ54 二叉搜索树的第k个节点

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JZ54 二叉搜索树的第k个节点

该方法采用的是先前序再排列,然后打印。第二种方法是根据二叉树的特点,左子树节点的值小于根节点小于右子树节点的值。所以中序打印出来的数据就是按照顺序排列好的。以下是代码:

import java.util.*;



public class Solution {
    
//     前序遍历;
    public int KthNode (TreeNode proot, int k) {
        // write code here
//         获得list的长度
        int len=0;
        Listlist1=new ArrayList();
        Listlist2=new ArrayList();
        list1=get_list(list2,proot);
//         什么是快乐星球
        for(int i=0;icount){
            return -1;
        }
       list1.sort(null);
        System.out.println(list1.size());
        return list1.get(k-1);
    }
//     先遍历二叉树
    public List get_list(List list,TreeNode proot){
        if(proot!=null){
            list.add(proot.val);
            if(proot.left!=null){
                
                get_list(list,proot.left);
            }
            if(proot.right!=null){
               
                get_list(list,proot.right);
            }
            
        }
        return list;
    }
}

第二种方法
import java.util.*;

public class Solution {

public int KthNode (TreeNode proot, int k) {
// write code here

    List list=new ArrayList();
    List list2=new ArrayList();
   
    list=get_list(list2,proot);
    if(k<=0||k>list.size()){
        System.out.println(123);
        return -1;
    }
    if(proot==null){
          System.out.println(124);
        return -1;
    }
   return list.get(k-1);
}

// 利用中序遍历
public List get_list(List list1,TreeNode root){
if (root != null) {
get_list(list1,root.left);
list1.add(root.val);
get_list(list1,root.right);
}
return list1;
}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/592035.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号