zoukankan      html  css  js  c++  java
  • 144.二叉树的前序遍历

    2020-05-27
    二叉树的前序遍历

    给定一个二叉树,返回它的 前序 遍历。

    题解:
     
    思路1:递归
    var preorderTraversal = function (root) {
      let result = [];
      let fn = (node) => {
        if (!node) return;
        result.push(node.val);
        fn(node.left);
        fn(node.right);
      }
      fn(root);
      return result;
    };
    思路2:迭代
    var preorderTraversal = function (root) {
      if (!root) return [];
      let stact = [root], result = [], curNode; // stack 存储目前需要处理的节点 
      while (stact.length) {
        curNode = stact.pop(); // 从栈中取最后一个处理
        result.push(curNode.val); // 值存入result中
        curNode.right && stact.push(curNode.right); // 如果有right  将right放入栈中
        curNode.left && stact.push(curNode.left); // 如果有left 将left放入栈中
        // 之所以先放right再放left 是因为确保每次取的值都是最左边的
      }
      return result;
    };
  • 相关阅读:
    C#微信开发
    3-4:字符串方法
    2-4-1 元组
    2-3-3 列表方法
    2-2-3:序列(字符串)乘法(p32)
    3-3字符串格式化(p47)
    2-2:分片
    2-1:Print date(p28)
    old.2.三次登录机会
    old.2.sum(1-2+3-4+...+99)
  • 原文地址:https://www.cnblogs.com/lanpang9661/p/12970497.html
Copyright © 2011-2022 走看看