剑指offer 27. 二叉搜索树与双向链表

来源:互联网 发布:百度人工智能负责人 编辑:程序博客网 时间:2024/06/05 01:03
//题目:输入一个二叉树,将其用中序遍历的顺序变为一个双向链表//解法:递归的中序遍历树public class Main {        static TreeNode head = null;    static TreeNode realHead = null;        public static void main(String[] args){    TreeNode t = new TreeNode();t.data = 2;t.left = new TreeNode();t.left.data = 1;t.left.left = new TreeNode();t.left.right = new TreeNode();t.left.left.data = 4;t.left.right.data = 5;t.right = new TreeNode();t.right.data = 3;Convert(t);System.out.println();    }        public static TreeNode Convert(TreeNode pRootOfTree) {        ConvertSub(pRootOfTree);        return realHead;    }    private static void ConvertSub(TreeNode pRootOfTree) {        if(pRootOfTree==null) return;        ConvertSub(pRootOfTree.left);//先遍历左子树,然后进行操作,最后遍历右子树        if (head == null) {            head = pRootOfTree;            realHead = pRootOfTree;        } else {            head.right = pRootOfTree;            pRootOfTree.left = head;            head = pRootOfTree;        }        ConvertSub(pRootOfTree.right);    }}

0 0