河南网站开发培训价格,wordpress固定连接404错误,广州设计工作室集中地,wordpress云盘插件官方题解#xff1a;LeetCode官方题解
解题思想#xff1a; 当根节点不为空时#xff0c;从二叉树根节点开始遍历 判断当前节点是否有左节点#xff0c;如果不存在左节点#xff0c;则当前节点向右移一位 如果存在左节点#xff0c;创建辅助节点指向左节点#xff0c;判… 官方题解LeetCode官方题解
解题思想 当根节点不为空时从二叉树根节点开始遍历 判断当前节点是否有左节点如果不存在左节点则当前节点向右移一位 如果存在左节点创建辅助节点指向左节点判断左节点是否有右节点如果有右节点则将辅助节点指向右节点此时进行拼接操作即将辅助节点的右节点指向当前节点的右节点当前节点cur的右节点指向当前节点的左节点且当前节点的左节点指向为Null 结束上述步骤之后当前节点向右移一位之后开始重新执行上述步骤 大致流程 将左子树插入到右子树的地方 将原来的右子树接到左子树的最右边节点 考虑新的右子树的根节点一直重复上边的过程直到新的右子树为 null 代码
public void flatten(TreeNode root) {while (root ! null) { //左子树为 null直接考虑下一个节点if (root.left null) {root root.right;} else {// 找左子树最右边的节点TreeNode pre root.left;while (pre.right ! null) {pre pre.right;} //将原来的右子树接到左子树的最右边节点pre.right root.right;// 将左子树插入到右子树的地方root.right root.left;root.left null;// 考虑下一个节点root root.right;}}
}