二叉搜索树与双向链表
二叉搜索树与双向链表
http://www.nowcoder.com/questionTerminal/947f6eb80d944a84850b0538bf0ec3a5
思路:先中序遍历得到排好序的节点,然后组成链表就好了。
List<TreeNode> list = new ArrayList<>(); public TreeNode Convert(TreeNode pRootOfTree) { getSortedNode(pRootOfTree); for(int i = 0; i < list.size() - 1; i++){ list.get(i).right = list.get(i + 1); list.get(i + 1).left = list.get(i); } return list.get(0); } private TreeNode getSortedNode(TreeNode root){ if(root==null) return null; getSortedNode(root.left); list.add(root); getSortedNode(root.right); return root; }