JZ26:二叉搜索树与双向链表

二叉搜索树与双向链表

http://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5

 /**二叉搜索树的中序遍历就是递增的排序,所以就运用中序遍历方法来做。
     * 算法思想:
     * 中序遍历的步骤,只不过在递归的中间部分不是输出节点值,而是调整指针指向。
     *     10
     *     /\
     *    5 12
     *   /\
     *  4 7
*  步骤记住就行,第一次执行,到4的时候,head和resulthead都指向这个
*  指针调整的其中一步:4是head 5是pRootOfTree 然后调整head右指向5,5左指向4,
*  然后5变成head就行了。
 */
public class TreeNode{
        int value;
        TreeNode left;
        TreeNode right;

        public TreeNode(int value){
            this.value=value;
        }
    }

    TreeNode head=null;//表示转换后最后一个节点
    TreeNode resultHead=null;//表示将二叉搜索树转为双向链表后的第一个节点

    public TreeNode Convert(TreeNode pRootOfTree){
        ConverSub(pRootOfTree);
        return resultHead;
    }

    public void ConverSub(TreeNode pRootOfTree){
        if(pRootOfTree==null){
            return ;
        }
        ConverSub(pRootOfTree.left);
        if(head==null){
            head=pRootOfTree;
            resultHead=pRootOfTree;
        }
        else{//将根节点加入双向链表中,设置左右连接
            head.right=pRootOfTree;
            pRootOfTree.left=head;
            head=pRootOfTree;
        }
        ConverSub(pRootOfTree.right);
    }
剑指Offer题解 文章被收录于专栏

剑指Offer-Java版本题解

全部评论

相关推荐

06-07 21:26
江南大学 C++
话不多说,直接上时间线和图片1.2024年10月底发offer,并签三方2.2025年5月底公司违约
从零开始的转码生活:希望所有签了三方但直接违约的公司都倒闭!都倒闭!都倒闭!
点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务