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版本题解

全部评论

相关推荐

野猪不是猪🐗:把你的学校加黑,加粗,斜体,下划线,描边,内阴影,内发光,投影,外发光,再上渐变色,居中,放大到最大字号,再把简历里其它内容删了,就行了
点赞 评论 收藏
分享
01-23 19:12
门头沟学院 Java
榨出爱国基因:你还差 0.1% 就拿到校招礼盒,快叫朋友给你砍一刀吧
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务