焦作商城网站建设国外特效网站
web/
2025/10/2 7:28:32/
文章来源:
焦作商城网站建设,国外特效网站,wordpress 重新设置密码,爱站网关键词搜索文章目录 题目方法一#xff1a;前序遍历#xff08;构造集合#xff09; 集合#xff08;构造新树#xff09;方法二#xff1a;原地构建方法三#xff1a;前序遍历--迭代#xff08;构造集合#xff09; 集合#xff08;构造新树#xff09; 题目 方法一#x… 文章目录 题目方法一前序遍历构造集合 集合构造新树方法二原地构建方法三前序遍历--迭代构造集合 集合构造新树 题目 方法一前序遍历构造集合 集合构造新树 ListTreeNode res new ArrayList();public void flatten(TreeNode root) {dfs(root);for(int i 0 ; i res.size() ; i){if(i res.size()-1){//处理最后一个节点res.get(i).left null;res.get(i).right null;break;}res.get(i).left null;res.get(i).right res.get(i1);}}//前序遍历public void dfs(TreeNode root) {if(root null ) return ;res.add(root);dfs(root.left);dfs(root.right);}方法二原地构建
将左子树插入到右子树的地方将原来的右子树接到左子树的最右边节点考虑新的右子树的根节点一直重复上边的过程直到新的右子树为 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;}}}方法三前序遍历–迭代构造集合 集合构造新树 public void flatten(TreeNode root) {ListTreeNode res new ArrayList();DequeTreeNode stack new LinkedList();while(!stack.isEmpty() || root ! null){while(root ! null) {res.add(root);stack.push(root);root root.left;}root stack.pop();root root.right;}for(int i 0 ; i res.size() ; i){if(i res.size()-1){//处理最后一个节点res.get(i).left null;res.get(i).right null;break;}res.get(i).left null;res.get(i).right res.get(i1);}}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85500.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!