• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:33-二叉搜索树的后序遍历序列

java 搞代码 3年前 (2022-01-27) 20次浏览 已收录 0个评论

33. 二叉搜寻树的后序遍历序列

思路:

  • 搜寻树的后果的特点

    • 头节点侧的数比头节点侧的数比头节点
    • 数组后果的最初一位是树的头节点

    所以能够按头节点分为左右子树后,是否分完,再判断分进去的左右子树是否能被它们的头节点分来源gao*daima.com搞@代#码网成正好右边都小,左边都大。

代码:

public boolean verifyPostorder(int[] postorder) {
    if (postorder.length<1) return true;
    ArrayList<Integer> a = new ArrayList<>();
    for (int i = 0; i < postorder.length; i++) {
        a.add(postorder[i]);
    }
    return verify(a);
}
public boolean verify(ArrayList<Integer> postorder){
    if (postorder.size()<=1) return true;
    int mid = postorder.get(postorder.size()-1);
    int i = 0;
    ArrayList<Integer> left = new ArrayList<>();
    ArrayList<Integer> right = new ArrayList<>();
    while(postorder.get(i)<mid){
        left.add(postorder.get(i++));
        if (i==postorder.size()) break;
    }
    while(postorder.get(i)>mid){
        right.add(postorder.get(i++));
        if(i==postorder.size()) break;
    }
    if (i < postorder.size()-1) return false;
    return verify(left) && verify(right);
}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:33-二叉搜索树的后序遍历序列
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址