
题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
我的解答
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 36 37 38 39 40 41 42 43 44 45
|
/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;
public TreeNode(int val) { this.val = val;
}
} */ public class Solution { TreeNode cur = null; TreeNode head = null; public TreeNode Convert(TreeNode pRootOfTree) { if (null == pRootOfTree) { return null; } else { TreeNode prev = null; midVisit(pRootOfTree); while (null != pRootOfTree.left) { pRootOfTree = pRootOfTree.left; } return pRootOfTree; } } private void midVisit(TreeNode next){ if (null == next) { return; } midVisit(next.left); if (null == head) { cur = next; head = next; } else { cur.right = next; next.left = cur; cur = next; } midVisit(next.right); } }
|
近期评论