• 27:二叉搜索树与双向链表


    /**
     * 面试题27:二叉搜索树与双向链表
     * 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
     */
    public class _27_tree_to_linked {
        public static void main(String[] args) {
            TreeNode27 treeNode27 = new TreeNode27(10);
            treeNode27.left= new TreeNode27(6);
            treeNode27.right= new TreeNode27(14);
            treeNode27.left.left= new TreeNode27(4);
            treeNode27.left.right= new TreeNode27(8);
            treeNode27.right.left= new TreeNode27(12);
            treeNode27.right.right= new TreeNode27(16);
            Solution27 solution27 = new Solution27();
            TreeNode27 pResult=solution27.Convert(treeNode27);
            while(pResult!=null){
                System.out.print(pResult.val+"、");
                pResult=pResult.right;
            }
        }
    }
    class Solution27 {
        public TreeNode27 Convert(TreeNode27 pRootOfTree) {
            TreeNode27 pResult=convertNode(pRootOfTree,null);
            //pResult指向双向链表的尾结点,返回头结点
            while(pResult!=null&&pResult.left!=null){
                pResult=pResult.left;
            }
            return pResult;
        }
        public TreeNode27 convertNode(TreeNode27 pRootOfTree,TreeNode27 pResult){
            if(pRootOfTree==null){
                return null;
            }
            if(pRootOfTree.left!=null){
                pResult=convertNode(pRootOfTree.left,pResult);
            }
            pRootOfTree.left=pResult;
            if(pResult!=null){
                pResult.right=pRootOfTree;
            }
            pResult=pRootOfTree;
            if(pRootOfTree.right!=null){
                pResult=convertNode(pRootOfTree.right,pResult);
            }
            return pResult;
        }
    }
    class TreeNode27 {
        int val = 0;
        TreeNode27 left = null;
        TreeNode27 right = null;
        public TreeNode27(int val) {
            this.val = val;
        }
    }
    
  • 相关阅读:
    原则之读书笔记(生活篇)
    为 Nginx 添加 HTTP 基本认证(HTTP Basic Authentication)
    Linux搜索所有文件中的内容
    Js实现Table动态添加一行的小例子
    Android必学之数据适配器BaseAdapter
    技术共享之常见的6中种方法检测手机是否是虚拟机
    修改MySql数据库的默认时
    space.php
    self.location.href
    宝塔搭建laravel所需要的lnmp环境linux-nginx-mysql-php-composer-git
  • 原文地址:https://www.cnblogs.com/andy-zhou/p/6549679.html
Copyright © 2020-2023  润新知