AMD 東山再起:股價 6 年間翻了 55 倍
阿新 • • 發佈:2021-07-12
題目來源: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
進階:遞迴演算法很簡單,你可以通過迭代演算法完成嗎?