1. 程式人生 > 資訊 >AMD 東山再起:股價 6 年間翻了 55 倍

AMD 東山再起:股價 6 年間翻了 55 倍

題目來源:144. 二叉樹的前序遍歷

給你二叉樹的根節點root,返回它節點值的前序遍歷。

示例 1:

輸入:root = [1,null,2,3]
輸出:[1,2,3]

示例 2:

輸入:root = []
輸出:[]

示例 3:

輸入:root = [1]
輸出:[1]

示例 4:

輸入:root = [1,2]
輸出:[1,2]

示例 5:

輸入:root = [1,null,2]
輸出:[1,2]
/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 
*/ /** * @param {TreeNode} root * @return {number[]} */ var preorderTraversal = function(root) { if(root == null){ return []; } let res = []; let cur = root; while(cur){ if(cur.left == null){ res.push(cur.val); cur = cur.right; }else{ let node = cur.left;
while(node != null && node.right != null && node.right != cur){ node = node.right; } if(node.right == null){ res.push(cur.val); node.right = cur; cur = cur.left; }else{ node.right = null; cur = cur.right; } } }
return res; };

提示:

  • 樹中節點數目在範圍[0, 100]
  • -100 <= Node.val <= 100

進階:遞迴演算法很簡單,你可以通過迭代演算法完成嗎?