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

xiaoxiao2021-02-28  137

//题目:输入一个二叉树,将其用中序遍历的顺序变为一个双向链表 //解法:递归的中序遍历树 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); } }
转载请注明原文地址: https://www.6miu.com/read-35047.html

最新回复(0)