当前位置: 首页 > news >正文

杭州seo网站优化买房子怎么找房源

杭州seo网站优化,买房子怎么找房源,如何建设网站吸引人,哈尔滨做网站巨耀公司二叉树的非递归遍历 文章目录 二叉树的非递归遍历前序遍历-栈层序遍历-队列中序遍历-栈后序遍历-栈 前序遍历-栈 首先我们应该创建一个Stack 用来存放节点#xff0c;首先我们想要打印根节点的数据#xff0c;此时Stack里面的内容为空#xff0c;所以我们优先将头结点加入S…二叉树的非递归遍历 文章目录 二叉树的非递归遍历前序遍历-栈层序遍历-队列中序遍历-栈后序遍历-栈 前序遍历-栈 首先我们应该创建一个Stack 用来存放节点首先我们想要打印根节点的数据此时Stack里面的内容为空所以我们优先将头结点加入Stack。之后我们应该先打印左子树然后右子树所以先加入Stack的就是右子树然后左子树。 public ListInteger preorderTraversal(TreeNode root) {ListInteger res new ArrayList();if (root null) {return res;}StackTreeNode stack new Stack();//1.根节点入栈stack.push(root);//2.栈不为空while (!stack.isEmpty()) {//2.1出栈需暂时保存出栈元素TreeNode tmp stack.pop();res.add(tmp.val);//2.2左右子树不为空的情况下出栈元素的右子树入栈左子树入栈if (tmp.right ! null) {stack.push(tmp.right);}if (tmp.left ! null) {stack.push(tmp.left);}}return res; } 层序遍历-队列 首先我们应该创建一个Queue用来存放节点首先我们想要打印根节点的数据此时Queue里面的内容为空所以我们优先将头结点加入Queue。之后我们应该先打印左子树然后右子树所以先加入Queue的就是左子树然后右子树。 public ListListInteger levelOrder(TreeNode root) {ListListInteger res new ArrayList();if (root null) {return res;}QueueTreeNode queue new LinkedList();//1.根节点入队列queue.offer(root);//2.队列不为空while (!queue.isEmpty()) {//2.1获取当前队列的元素ListInteger level new ArrayList();int size queue.size();for (int i 0; i size; i) {//2.1.1出队列需暂时保存出队元素TreeNode tmp queue.poll();level.add(tmp.val);//2.1.2左右子树不为空的情况下出队元素的左子树入队右子树入队if (tmp.left ! null) {queue.offer(tmp.left);}if (tmp.right ! null) {queue.offer(tmp.right);}}//2.2当前队列元素加入到res中res.add(level);}return res; }中序遍历-栈 同理创建一个 Stack。 尽可能的将这个节点的左子树压入 Stack此时栈顶的元素是最左侧的元素其目的是找到一个最小单位的子树(也就是最左侧的一个节点)并且在寻找的过程中记录了来源才能返回上层同时在返回上层的时候已经处理完毕左子树了。 当处理完最小单位的子树时返回到上层处理了中间节点。如果把整个左中右的遍历都理解成子树的话就是处理完 左子树-中间(就是一个节点)-右子树 如果有右节点其也要进行中序遍历。 public ListInteger inorderTraversal(TreeNode root) {ListInteger res new ArrayList();if (root null) {return res;}StackTreeNode stack new Stack();TreeNode cur root;while (true) {//1.cur从根节点出发一直向左保存左子树直到curnullwhile (cur ! null) {stack.push(cur);cur cur.left;}//2.若栈为空退出循环if (stack.isEmpty()) {break;}//3.出栈TreeNode tmp stack.pop();res.add(tmp.val);//4.cur指向出栈元素的右子树//若为空则继续出栈若不为空再继续向左保存子树cur tmp.right;}return res; }后序遍历-栈 同理创建一个 Stack。 尽可能的将这个节点的左子树压入 Stack此时栈顶的元素是最左侧的元素。 该元素无右子树或者右子树已经访问过则可以处理该元素并用prev记录当前已处理的元素 否则访问右子树进行后序遍历 public ListInteger postorderTraversal(TreeNode root) {ListInteger res new ArrayList();if (root null) {return res;}StackTreeNode stack new Stack();TreeNode cur root;TreeNode prev null;while (true) {//1.cur从根节点出发一直向左保存左子树直到curnullwhile (cur ! null) {stack.push(cur);cur cur.left;}//2.若栈为空退出循环if (stack.isEmpty()) {break;}//3.得到栈顶元素先不访问满足条件才可以访问TreeNode tmp stack.peek();//4.若栈顶元素无右子树或者右子树已被访问则可以访问//若prevtmp.right则tmp一定是其右子树的根节点。因为此时右子树已访问完毕if (tmp.right null || tmp.right prev) {stack.pop();res.add(tmp.val);prev tmp;} else { //5.cur指向栈顶元素的右子树cur tmp.right;}}return res;}
http://www.tj-hxxt.cn/news/138033.html

相关文章:

  • 淘宝刷单网站怎么建设源代码seo关键词如何布局
  • 电子商务网站规划的流程筑招建筑人才网长春安全员
  • 网站建设氺金手指排名15定制开发app价格
  • 解决wordpress更改新域名后网站不能访问的问题做游戏网站用什么系统做
  • 网站设计前沿网站代理网站地址
  • 正在建设中网站自己做头像的软件
  • 做商铺最好的网站小程序商城模板下载
  • 免费网站后台网站建设平台哪家好
  • 网站 空间表格做的网站影响收录
  • 收录快的网站wordpress 系统安装
  • 安卓手机做网站服务器上海热点新闻
  • 网站空间一定要买吗门窗网站源码
  • 商城类网站设计制作扬中信息港
  • 广西自治区集约化网站建设要求淘宝卖家中心网页版
  • 帮站seo怎么帮网站做支付接口
  • 滨江网站建设网页美工设计总结
  • 青岛网页制作网站怎么做像天猫类似的网站
  • 怎么通过网路访问自己做的网站网络销售怎么做
  • 贵阳门户网站wordpress 封面图像
  • 现在还用dw做网站设计么游戏代理去什么平台找
  • 做网站售后好的公司哪里培训网页设计
  • 苍南网站制作最好用的磁力搜索神器
  • 石家庄网站建设吧陈田村拆车件网上商城
  • 如何给网站做右侧悬浮电话网站首页设计代码
  • php网站建设的几个流程wordpress 畅萌
  • 淘宝购物券网站怎么做购物网站制作公司
  • 公司高端网站建搜索引擎优化的重要性
  • 网站制作和网页制作是不是一样h5下一页
  • 招商网站建设小工厂如何找外贸公司合作
  • 怎样做网站表白什么是网站微商城的建设