public List <ICharacterAction> GetActionQueue() { if (root == null) { return(null); } List <ICharacterAction> queue = new List <ICharacterAction>(); if (leftNode != null) { queue.AddRange(leftNode.GetActionQueue()); } queue.Add(root); if (rightNode != null) { queue.AddRange(rightNode.GetActionQueue()); } return(queue); }