题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
public class { int val = 0; TreeNode left = null; TreeNode right = null; public (int val) { this.val = val; } }
public class Solution { public TreeNode Convert(TreeNode pRootOfTree) { if(pRootOfTree == null){ return null; } TreeNode left = Convert(pRootOfTree.left); TreeNode p = left; while(p != null && p.right != null){ p = p.right; } if(left != null){ p.right = pRootOfTree; pRootOfTree.left = p; } TreeNode right = Convert(pRootOfTree.right); p = right; while(p != null && p.left != null){ p = p.left; } if(right != null){ right.left = pRootOfTree; pRootOfTree.right = right; } return left != null ? left : pRootOfTree; } }
|
近期评论