zoukankan      html  css  js  c++  java
  • 平衡二叉树的左旋转

    好比挑水的时候在扁担上找一个合适的位置。不至于前重后轻或前轻后重。

        //左旋转方法 
        private void leftRotate() {
            //创建新的结点,以当前根结点的值 a
            Node newNode = new Node(value);
            //把新的结点的左子树设置成当前结点的左子树 b
            newNode.left = left;
            //把新的结点的右子树设置成带你过去结点的右子树的左子树 c
            newNode.right = right.left;
            //把当前结点的值替换成右子结点的值 d
            value = right.value;
            //把当前结点的右子树设置成当前结点右子树的右子树 e 
            right = right.right;
            //把当前结点的左子树(左子结点)设置成新的结点 f
            left = newNode;
        }

    当发现右边节点过多。就需要左旋转。即将右护法升为教主。

    右护法篡夺教主之位分三步:

    1,扶植一个亲信,偷取了原教主的值和左子树 a b

    2,帮助右护法接管左子树 c

    3,右护法登基成功。d

    4,新教主将立功的亲信作为左护法,自己的原右子树作为右护法。e f

  • 相关阅读:
    hbase scan超时问题
    hadoop的shuffle和排序
    MapReduce作业的调度
    hadoop hdfs问题集锦
    JVM--双亲委派机制
    springboot快速搭建
    CircleView
    TabHost实现底部导航栏
    GridView的stretchMode属性
    Android直连SQL Server数据库
  • 原文地址:https://www.cnblogs.com/wllhq/p/13645892.html
Copyright © 2011-2022 走看看