思路:先中序遍历得到排好序的节点,然后组成链表就好了。
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; }